深入理解计算机系统 家庭作业2.60

看题: 0到w/8-1 此时根据输入的参数0x12345678,这是个8位的16进制数.每一位有四个二进制位也就4*8得出 w=32位,w/8-1=3,所以是从0到3编号.是一个倒序,而且是没两个数字编一个号.

编号⬇: 3 2 1 0

意思就是0x12 34 56 78

#include <stdio.h>

unsigned replace_byte(unsigned x,int i,unsigned char b);

int main(void)

{

printf ("0x%X\n",replace_byte(0x12345678,2,0xAB)) ;

printf ("0x%X\n",replace_byte(0x12345678,0,0xAB)) ;

}

unsigned replace_byte(unsigned x,int i,unsigned char b)

{

unsigned char *tar;

tar = (unsigned char *) &x;

tar[i]=b;//你会发现它本来就是小端法输出的,所以参数i可以用作下标.

return x;

}

相关推荐
你怎么知道我是队长20 分钟前
C语言---输入和输出
c语言·开发语言
net3m3323 分钟前
单片机屏幕多级菜单系统之当前屏幕号+屏幕菜单当前深度 机制
c语言·c++·算法
你怎么知道我是队长30 分钟前
C语言---文件读写
java·c语言·开发语言
wu_asia2 小时前
编程技巧:如何高效输出特定倍数数列
c语言·数据结构·算法
你怎么知道我是队长2 小时前
C语言---无名位域
c语言·开发语言
码农小韩5 小时前
基于Linux的C++学习——循环
linux·c语言·开发语言·c++·算法
Q741_1475 小时前
海致星图招聘 数据库内核研发实习生 一轮笔试 总结复盘(2) 作答语言:C/C++ 哈夫曼编码 LRU
c语言·数据库·c++·算法·笔试·哈夫曼编码·哈夫曼树
你怎么知道我是队长5 小时前
C语言---位域
c语言·开发语言
爱吃生蚝的于勒7 小时前
【Linux】进程间通信之匿名管道
linux·运维·服务器·c语言·数据结构·c++·vim
!停8 小时前
C语言单链表
c语言·数据结构·算法