c语言中& 0x00ffffff是什么意思啊
用fread读完二进制文件后,输出int型的amount(题目要求大小为3个字节)时跟了个&0x00ffffff,求问这语句到底什么意思...
用fread读完二进制文件后,输出int型的amount(题目要求大小为3个字节)时跟了个& 0x00ffffff,求问这语句到底什么意思
展开
5个回答
展开全部
通常int是4个字节,& 0x00ffffff作用是只取后三个字节的值,屏掉第一个字节。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
32位整型变量,读取时,只写了前三个字节: fread(&amount,3,1,fp); 高8位字节没有初始化和赋值,这里amount & 0x00ffffff 就是整数的高8位清0其它位保留
上面的输入也可以简化,不必这么麻烦,在 cc = fread(&amount,3,1,fp); 语句之前,
先给 amount置0: amount = 0; 就可以省略后面的位与操作了
上面的输入也可以简化,不必这么麻烦,在 cc = fread(&amount,3,1,fp); 语句之前,
先给 amount置0: amount = 0; 就可以省略后面的位与操作了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
高8位清0,所以最大就是3个字节,符合题目要求。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
只保留低24位(32-8)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询