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 版权协议,转载请附上原文出处链接和本声明。