好吧,我正在开始我的C研究,我留下了以下问题,如何填充基本类型的位,例如,int类型,例如,有4个字节,即32位,适合但是,例如,如果我使用的值只占用1个字节,那么其他位如何保留?
#include <stdio.h>
int main(void) {
int x = 5; // 101 how the rest of the bits are filled
// which was not used?
return 0;
}
所有前导位将设置为0
,否则该值将不是5
。有点,在今天的计算机中,只有两个状态,所以如果它不是0
那么它的1
会导致存储的值不同。所以假设你有32位
5 == 0b00000000 00000000 00000000 00000101
5 == 0x00000005
其余位存储为0。
int a = 356;
现在让我们将其转换为二进制。
1 0 1 1 0 0 1 0 0
现在你得到9位数。由于int分配32位,因此用0填充剩余的23位。
所以存储在内存中的值是
00000000 00000000 00000001 01100100
您选择的类型决定整数的大小,而不是您在变量中存储的值。
如果我们假设int
在您的系统上是32位,那么值5
将表示为32位数。这是0000000000000000000000000101
二进制或0x00000005
十六进制。如果其他位具有任何其他值,则它将不再是5位,32位大的数字。