无符号整数

计算机里的数是用 二进制表示的,最左边的这一位一般用来表示这个数是正数还是负数,这样的话这个数就是有符号整数。如果最左边这一位不用来表示正负,而是和后面的连在一起表示整数,那么就不能区分这个数是正还是负,就只能是正数,这就是无符号整数。
中文名
无符号整数
学    科
数学
属    性
整数
词    性
名词

有符号整数和无符号整数差别

编辑
int是有符号的。
unsigned才是无符号的。
它们所占的字节数其实是一样的,但是有符号的需要安排一个位置来表达我这个数值的符号是什么,因此说它能表示的绝对值就要比无符号的少一半。举个例子,我们有一个1个 字节的整数(虽然这种类型不存在),那么无符号的就是这样:00000000~11111111 这个就是无符号的范围。
一个字节是8位。 下面有符号的,因为第一个位要用来表示符号,那么就只剩下7个位置可以用来表示数了0000000~1111111因为有符号所以还可以:-1111111~0000000。

编程

编辑

c语言无符号整数怎么定义

整型变量的分类: 基本 整型:int 短整型:short int 长整型:long int对以上三类加上 修饰符 unsigned以指定是“ 无符号数”。如果加上修饰符singed,则指定的是“ 有符号数”,如果既不指定为signed也不指定是unsigned,则隐含为有符号(signed)。

无符号整数的陷阱

请问以下代码的输出?
unsigned int a=1,int b=-2;
int c=-2;
cout<<b<< endl;
if(a+c>0)
cout<<a+b<<endl;
运行结果:
4294967294
4294967295
Press any key to continue
首先,程序的第一行,变量b和a一样,都是 无符号整型,这是一个陷阱。
其次,在32位系统中,int的范围是-2147483648~+2147483647,而unsigned int的范围是0~4294967295。负数在无符号整型中用 补码表示,所以b是4294967294。
第三,int默认为signed int,它与unsigned int运算时,结果被转换为unsigned int,所以a是4294967295。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值