C语言问题

[复制链接]
查看11 | 回复3 | 2010-5-14 11:24:31 | 显示全部楼层 |阅读模式
书上说,5678按十进制码就占4个字节,但按二进制码就占2个字节,为什么呢?

回复

使用道具 举报

千问 | 2010-5-14 11:24:31 | 显示全部楼层
书的意思可能是,如果按十进制编码,每一个十进制位位就占一个字节。5678有4位,照这样看就是4个字节了。实际上你这本书如果真的是这个意思,那就是在扯淡。现实中就有用十进制编码进行某些数据的存储的计算机。这种编码方式叫BCD。那就是IBM常喜欢做广告的“十进制计算”。它有不少计算机在内部使用这种十进制的方式来记录和计算数据。感兴趣的话你可以搜一下,正式的名字是BCD,“二进制编码的十进制”。BCD编码里面十进制的每一位用4个比特来存储,也就是半个字节。如果你的书用十进制的10000举例,在BCD编码中,那倒变成了,十进制编码占3个字节,二进制编码占2个字节。但是小于1万的数是不存在你书上说的这种问题的。BC
回复

使用道具 举报

千问 | 2010-5-14 11:24:31 | 显示全部楼层
在32位的计算机中整数是32位的,因此十进制的5678要占4个字节。5678转换成二进制是1011000101110,只有13位。2个字节共有16位,因此可以存下。
回复

使用道具 举报

千问 | 2010-5-14 11:24:31 | 显示全部楼层
计算机中,1个字节等于8位二进制。5678二进制表示为0101 0110 0111 1000。按1个字节等于8位二进制,所以占2个字节
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行