请C语言高手来做一做《深入理解计算机系统》里面关于字节替换的习题。

2020-09-18 教育 124阅读
OK了
#include
#include
typedef unsigned char *byte_pointer;
void show_bytes(unsigned output)
{
int i,temp;
int len=0;
char index[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char *res=(char*)malloc(30);
printf("0x");
while (output!=0)
{
*res++=index[output%16];
len++;
output/=16;
}
res--;
for (i=len-1;i>=0;i--)
{
printf("%c",*res--);
}
printf("\n");
}
unsigned put_byte (unsigned x, unsigned char b, int i)
{
unsigned *px;
unsigned char *p;
px=&x;
p=(unsigned char *)px;
*(p++)=b;
return x;
}
int main()
{
unsigned input=0x12345678;
unsigned output=put_byte (input, 0xAB, 1);
printf("0x%x\n",output);
show_bytes(output);
return 0;
}
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com