为了搞清unsigned int到底是什么,我做了下面一个程序,把不同的数字打进去,看输出的不同效果:
#include "stdio.h"
main()
{
unsigned short a=32768;
unsigned short b=32767;
unsigned short c=32769;
unsigned short d=-32768;
unsigned short e=-32767;
unsigned short f=-32769;
unsigned short g=-1;
unsigned short h=-2;
unsigned short i=-3;
printf("%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n",a,b,c,d,e,f,g,h,i);
getch();
}
运行的结果如下:
32768
32767
32769
32768
32769
32767
65535
65534
65533
Press any key to continue
还是没有看出规律来,请会的朋友解释一下好吗?谢谢!
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次方),这是不同于有符号整型的。
本回答被网友采纳