发布网友 发布时间:2022-03-18 07:57
共5个回答
热心网友 时间:2022-03-18 09:26
不管是unsigned还是signed,同类型宽度都是一样,short占2字节共16个位,无符号可以完全利用这16个位来表示数字,就有2^16=65536中可能,可以表示0~65535,而有符号类型要用到最高位表示符号,2^15 = 32768,所以能表示-32768~32767,为了不出现两个0的情况,+0和-0,底层实现一般是用2的补码来表示负数,一个负数的二进制表示,可以由这个负数的绝对值的二进制表现形式取反再加1得到,热心网友 时间:2022-03-18 10:44
C语言中unsigned int是无符号整数的意思。
无符号整型(unsigned int):
(1)我们都知道整型是4个字节(有些编译器不同,可能会是2个),即32位,无符号整型当然也为32位。
(2)既然是32位,无符号整型的取值是32个0~32个1,即:0~4294967295
(3)我们举个例子:32位有点长,所以我们拿16位的unsigned short int 来举例。
short int 是16位的,无符号的范围是0~65535,就拿十进制的32767(以下的所有举例均拿这个数字来说事了)来说,它的二进制为:
0111 1111 1111 1111
对于无符号的整型32767来说,它的二进制的最高位称为数据位,即那个0就是数据位,数据位是要参与运算的,如果我们把0改成1,即16个1,它的十进制就是65535(就是2的15次方+2的14次方...一直加到2的0次方),这是不同于有符号整型的。
热心网友 时间:2022-03-18 12:19
unsigned 表示无符号热心网友 时间:2022-03-18 14:10
无符号整型,注意它的数值表示范围即可。热心网友 时间:2022-03-18 16:18
无符号整型