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

例如:11111111可以看成有符号整数转为十进制结果为-127,也可看成无符号整数转为十进制结果为255,这是咋么回事啊?谢谢喽······... 例如:11111111可以看成有符号整数转为十进制结果为-127,也可看成无符号整数转为十进制结果为255,这是咋么回事啊? 谢谢喽······ 展开
 我来答
帐号已注销
推荐于2019-09-09 · TA获得超过33.9万个赞
知道小有建树答主
回答量:403
采纳率:0%
帮助的人:14.6万
展开全部

有无符号的整数,在计算机内存中是区别不出有无符号的,而是在程序里有区分。计算机中数据是以补码形式存放的,用二进制表示。比如:默认无符号型,只要在类型符号加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。

超级烈焰85
推荐于2017-09-02 · 知道合伙人教育行家
超级烈焰85
知道合伙人教育行家
采纳数:14883 获赞数:173747
毕业于山西大学数学系

向TA提问 私信TA
展开全部
  有无符号的整数,在计算机内存中是区别不出有无符号的,而是在程序里有区分。计算机中数据是以补码形式存放的,用二进制表示。比如:默认无符号型,只要在类型符号加

unsigned就是无符号型,Int是有符号的。其实说白了就是:定义带符号整数的,则可以存储正负整数,定义无符号整数的,则只可以存储正整数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9308069
2011-07-20 · TA获得超过1万个赞
知道大有可为答主
回答量:3947
采纳率:89%
帮助的人:1849万
展开全部
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。由人为的协议规定,在高级语言中由变量的类型来标识出。
如果看成“有符号”整型,标志位是区分的标志。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sweetboy897
2011-07-20 · TA获得超过100个赞
知道答主
回答量:62
采纳率:0%
帮助的人:80.8万
展开全部
有符号整数最高一位是符号位,0表示正,1表示负,所以看成是1111111,转成十进制就是127
无符号整数无符号位,所以是11111111,转成十进制就是255。

我是从“上海全鼎软件学院”毕业的————————
追问
恩  谢谢了   这些我都知道,我不知道的是怎么区分一个二进制的数到底是有符号还是无符号的
追答
存储的数字不区分有无符号,关键在于你要怎么去解析使用它。在机器指令中,有针对有符号数及无符号数运算的不同指令。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
csdygfx
推荐于2017-09-14 · TA获得超过21.4万个赞
知道顶级答主
回答量:9.1万
采纳率:86%
帮助的人:7.8亿
展开全部
一个字节是8位,用8位来表示一个整数,如果是有符号的,第一位用来表示正负,0是正1是负
如果不无符号的,那第一位也可用来表示一个数位,这样可扩大数的表示范围

有无符号,根据软件或硬件有规定的
考试的时候会讲清,或约定的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式