C中原始类型的位

问题描述 投票:3回答:3

好吧,我正在开始我的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;
    }
c bit
3个回答
0
投票

所有前导位将设置为0,否则该值将不是5。有点,在今天的计算机中,只有两个状态,所以如果它不是0那么它的1会导致存储的值不同。所以假设你有32位

5 == 0b00000000 00000000 00000000 00000101
5 == 0x00000005

0
投票

其余位存储为0。

int a = 356;

现在让我们将其转换为二进制。

 1     0    1     1     0   0   1   0   0

现在你得到9位数。由于int分配32位,因此用0填充剩余的23位。

所以存储在内存中的值是

         00000000 00000000 00000001 01100100

0
投票

您选择的类型决定整数的大小,而不是您在变量中存储的值。

如果我们假设int在您的系统上是32位,那么值5将表示为32位数。这是0000000000000000000000000101二进制或0x00000005十六进制。如果其他位具有任何其他值,则它将不再是5位,32位大的数字。

© www.soinside.com 2019 - 2024. All rights reserved.