C语言:输出每个对象的字节表示

  • Post author:
  • Post category:其他




C语言:输出每个对象的字节表示

#include <stdio.h>

typedef unsigned char *byte_pointer; //定义了一个指向unsigned char的数据类型byte_pointer,一个字节指针引用一个字节序列,每个字节都被认为是一个非负整数

//输出每个对象的十六进制字节表示
void show_bytes(byte_pointer start, size_t length) //size_t表示数据结构大小的首选数据类型
{
    size_t i;
    for (i=0; i<length; i++)
    {
        printf("%.2x", start[i]);
    }
    printf("\n");
}

void show_int(int x)
{
    show_bytes((byte_pointer) &x, sizeof(int)); //强制转换byte_pointer类型
}

void show_float(float x)
{
    show_bytes((byte_pointer) &x, sizeof(float));
}

void show_pointer(void *x)
{
    show_bytes((byte_pointer) &x, sizeof(void *));
}

void test_show_bytes(int val)
{
    int ival = val;
    float fval = (float) ival;
    int *pval = &ival;
    
    show_int(ival);
    show_float(fval);
    show_pointer(pval);
}

int main()
{
    int i = 12345;
    test_show_bytes(i);
    
    return 0;
}



版权声明:本文为weixin_43456810原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。