如何以其他二进制格式写入整数值"60"
?
8bit
二进制代码60
= 111100
16bit
二进制代码60
=?
32bit
二进制代码60
=?
64bit
二进制代码60
=?
是16位二进制文件的111100000000
吗?
为什么8位二进制代码包含6位而不是8位?
我用Google搜索答案,但我无法得到这些答案。请提供答案,因为我还是这个领域的初学者。
答案 0 :(得分:6)
想象一下,你正在写小数值60
。您可以使用2位数,4位数或8位数来编写它:
1. 60
2. 0060
3. 00000060
在我们的十进制表示法中,最重要的数字位于左侧,因此增加表示的位数而不更改值,意味着只需在左侧添加零。
现在,在大多数二进制表示中,这都是相同的。十进制60只需要6位来表示它,所以8位或16位表示将是相同的,除了左边填充零:
1. 00111100
2. 00000000 00111100
注意:某些操作系统,软件,硬件或存储设备可能有不同的Endianness - 这意味着它们可能存储16位值,其中最低有效字节优先,然后是最有意义的字节。如上所述,二进制表示法仍然是MSB-on-left,但是读取这些小端设备的内存将显示任何16位块将在内部反转:
1. 00111100 - 8bit - still the same.
2. 00111100 00000000 - 16bit, bytes are flipped.
答案 1 :(得分:3)
每个数字都有自己的二进制数,这意味着只有一个! 在16/32/64位系统上111100 - 60看起来一样,在数字前面添加了许多0(常规未显示) 所以16位就是0000000000111100 32位 - 0000000000000000000000000011110 等等
答案 2 :(得分:0)
对于存储Endian很重要...否则位宽零始终是前缀,因此60将是......
8bit: 00111100
16bit: 0000000000111100