无符号整数和有符号整数怎么区分?

 我来答
宫泰皋人
2020-04-15 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.1万
采纳率:33%
帮助的人:860万
展开全部
有无符号的整数,在计算机内存中是区别不出有无符号的,而是在程序里有区分。计算机中数据是以补码形式存放的,用二进制表示。比如:默认无符号型,只要在类型符号加unsigned就是无符号型,Int是有符号的。其实说白了就是:定义带符号整数的,则可以存储正负整数,定义无符号整数的,则只可以存储正整数
拓展资料:
计算机里的数是用二进制表示的,最左边的这一位一般用来表示这个数是正数还是负数,这样的话这个数就是有符号整数。如果最左边这一位不用来表示正负,而是和后面的连在一起表示整数,那么就不能区分这个数是正还是负,就只能是正数,这就是无符号整数。
计算机中的整数分为两类:不带符号位的整数(unsigned
integer,也称为无符号整数),此类整数一定是正整数;带符号位的整数(signed
integer),此类整数可以表示正整数,又可以表示负整数。
无符号整数常用于表示地址、索引等正整数,它们可以是8位、16位、32位、64位甚至更多。8个二进制表示的正整数其取值范围是0~255(
-1),16位二进制位表示的正整数其取值范围是0~65535(
-1),32位二进制位表示的正整数其取值范围是0~
-1。
有符号和无符号的差别:
int是有符号的,unsigned是无符号的。
它们所占的字节数其实是一样的,但是有符号的需要安排一个位置来表达我这个数值的符号,因此说它能表示的绝对值就要比无符号的少一半。举个例子,我们有一个1个 [1] 字节的整数(虽然这种类型不存在),那么无符号的就是这样:00000000~11111111
这个就是无符号的范围。
一个字节是8位,
有符号的数,因为第一个位要用来表示符号,那么就只剩下7个位置可以用来表示数了0000000~1111111因为有符号,所以还可以表示范围:-1111
111

+1111
111。
裘许烟洽
2019-04-23 · TA获得超过3万个赞
知道大有可为答主
回答量:9511
采纳率:32%
帮助的人:874万
展开全部
11111111
为二进制表示
255,这不用解释什么。
表示负数时,就是用二的补码表示法。
负数的二的补码为“本身的反码加1”,有:
(1)1111111,符号位1表示负数
就要按上面的逆运算进行
除去符号位的七位(1111111),先减1得1111110。
求反码,得0000001,
代入符号,得-1
另外一个例子:
10101010表示多少呢?
同上面步骤
符号位1,负数。
0101010
先减1,得0101001,
求反码,得1010110,(64+16+4+2=86)
代入符号,得-86
(我本2楼)
怎么区分,是由最终怎么使用这个数据来决定,如果作为无符号,就是255,如果看成有符号就是-1。由人为的协议规定,在高级语言中由变量的类型来标识出。
如果看成“有符号”整型,标志位是区分的标志。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
霍罗巴忆秋
2019-12-15 · TA获得超过3811个赞
知道大有可为答主
回答量:3117
采纳率:32%
帮助的人:201万
展开全部
  有无符号的整数,在计算机内存中是区别不出有无符号的,而是在程序里有区分。计算机中数据是以补码形式存放的,用二进制表示。比如:默认无符号型,只要在类型符号加
unsigned就是无符号型,Int是有符号的。其实说白了就是:定义带符号整数的,则可以存储正负整数,定义无符号整数的,则只可以存储正整数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蔡景同郁晋
2019-09-26 · TA获得超过2.9万个赞
知道小有建树答主
回答量:1.1万
采纳率:35%
帮助的人:809万
展开全部
一个字节是8位,用8位来表示一个整数,如果是有符号的,第一位用来表示正负,0是正1是负
如果不无符号的,那第一位也可用来表示一个数位,这样可扩大数的表示范围
有无符号,根据软件或硬件有规定的
考试的时候会讲清,或约定的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式