社区
Java SE
帖子详情
byte 表示范围是-128 至 127 . 那么-128是如何表示出来呢?
孤尽JavaSea
2009-10-09 09:52:24
如果是:
1000 0000
第一位是符号位。
那么应该是 -127
强烈质疑中。。。。
...全文
881
15
打赏
收藏
byte 表示范围是-128 至 127 . 那么-128是如何表示出来呢?
如果是: 1000 0000 第一位是符号位。 那么应该是 -127 强烈质疑中。。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
孤尽JavaSea
2009-10-09
打赏
举报
回复
补码有什么好处??
huangqibing0626
2009-10-09
打赏
举报
回复
举个例子吧,譬如byte=137,明显超出了byte所能表示的范围;所以取其二进制表示:10001001
首先最高位表示符号位,所以输出结果应该是负数,将其取反变为01110110,加1变为01110111,再将其转化为十进制输出:-119
qingkangxu
2009-10-09
打赏
举报
回复
好像大家没有说到实质性问题:
注意计算机表示负数是用补码就OK了。
1,楼主去看看:http://blog.csdn.net/silentbalanceyh/archive/2009/09/28/4608360.aspx
搜索关键字:“计算机里面的原码、反码、补码”。
lxxzhy
2009-10-09
打赏
举报
回复
取反加一
justinavril
2009-10-09
打赏
举报
回复
[Quote=引用 10 楼 java_gannbare 的回复:]
为什么要取反啊
直接拿第一位当符号位就得到。
这么费事。。。。
[/Quote]
哥,你应该好好补习下原码,反码和补码的知识了
孤尽JavaSea
2009-10-09
打赏
举报
回复
为什么要取反啊
直接拿第一位当符号位就得到。
这么费事。。。。
justinavril
2009-10-09
打赏
举报
回复
[Quote=引用 8 楼 coldanimal 的回复:]
引用 3 楼 bao110908 的回复:
引用 1 楼 bao110908 的回复:
动动脑筋啊?
8 位二进制序列可以表示 256 个值。
正数和负数平分一下,就是正负各 128 个值,由于 0 算作负数了,所以正数最大只能到 127,负数没有少可想而知就是 -128 了。
说错了:
正数和负数平分一下,就是正负各 128 个值,由于 0 算作负数正数了,所以正数最大只能到 127,负数没有少可想而知就是 -128 了。
00000000的头位是0 所以0算是正数 是这个解释吗 请问?
[/Quote]
不用拘泥于细节 数学上的解释是 0既不是正数 也不是负数 但放到计算机里 符号位是0的话 你说是正数 也没啥问题
一头头
2009-10-09
打赏
举报
回复
[Quote=引用 3 楼 bao110908 的回复:]
引用 1 楼 bao110908 的回复:
动动脑筋啊?
8 位二进制序列可以表示 256 个值。
正数和负数平分一下,就是正负各 128 个值,由于 0 算作负数了,所以正数最大只能到 127,负数没有少可想而知就是 -128 了。
说错了:
正数和负数平分一下,就是正负各 128 个值,由于 0 算作负数正数了,所以正数最大只能到 127,负数没有少可想而知就是 -128 了。
[/Quote]
00000000的头位是0 所以0算是正数 是这个解释吗 请问?
lql355
2009-10-09
打赏
举报
回复
java中有正负的,-128是10000000,可以从128取反加一,看出它的补码。如果你把byte b=127 b+=1,那么b=-128了。
lz12366007
2009-10-09
打赏
举报
回复
顶下!!学习了额
justinavril
2009-10-09
打赏
举报
回复
[Quote=引用 3 楼 bao110908 的回复:]
引用 1 楼 bao110908 的回复:
动动脑筋啊?
8 位二进制序列可以表示 256 个值。
正数和负数平分一下,就是正负各 128 个值,由于 0 算作负数了,所以正数最大只能到 127,负数没有少可想而知就是 -128 了。
说错了:
正数和负数平分一下,就是正负各 128 个值,由于 0 算作负数正数了,所以正数最大只能到 127,负数没有少可想而知就是 -128 了。
[/Quote]
我估计他是不知道如何表示吧
8位数 最高位是符号位 也就是说正数最大是01111111,负数最小是10000000
网络咖啡
2009-10-09
打赏
举报
回复
程序中把-0的二进制码处理成负数的绝对值最大的数字了
火龙果被占用了
2009-10-09
打赏
举报
回复
[Quote=引用 1 楼 bao110908 的回复:]
动动脑筋啊?
8 位二进制序列可以表示 256 个值。
正数和负数平分一下,就是正负各 128 个值,由于 0 算作负数了,所以正数最大只能到 127,负数没有少可想而知就是 -128 了。
[/Quote]
说错了:
正数和负数平分一下,就是正负各 128 个值,由于 0 算作
负数
正数
了,所以正数最大只能到 127,负数没有少可想而知就是 -128 了。
xiaozhangnima
2009-10-09
打赏
举报
回复
128的二进制是10000000,-128的二进制是128的二进制取反加1取反后为01111111
所以-128的二进制为10000000
火龙果被占用了
2009-10-09
打赏
举报
回复
动动脑筋啊?
8 位二进制序列可以表示 256 个值。
正数和负数平分一下,就是正负各 128 个值,由于 0 算作负数了,所以正数最大只能到 127,负数没有少可想而知就是 -128 了。
OpenGL-自主高性能三维GIS平台架构与实现-第二季
34 高程分裂处理 当瓦片没有高程数据,那么子节点以及其他后代节点该如何共享父节点的数据 35 lesson-734-高程瓦片分裂处理(2)-算法实现 高程数据分裂算法实现实现对高程数据的切分,并对特殊数据进行处理 36 高程...
为什么1个字节的取值
范围
是-
128
~
127
1个字节,取值
范围
是-
128
~
127
. 那么,为什么是-
128
~
127
呢? 因为计算机补码机制,计算机中的数值是按照补码来存储的,正数的补码是他自身,负数的补码是符号位以外取反+1. 所以,正数的最大补码:01111111,即
127
...
Byte
的数值
范围
为何是-
128
到
127
Byte
的数值
范围
为何是-
128
到
127
一、原码、反码和补码 在探讨
Byte
的数值
范围
为何是-
128
到
127
这个问题前,首先要了解原码、反码和补码的概念。对于一个数字,计算机要使用一定的编码方式进行存储。原码、反码和补码是...
byte
范围
:-
128
到
127
原因
byte
范围
:-
128
到
127
原因 : 在计算机内,定点数有3种
表示
法:原码、反码和补码 原码 :二进制定点
表示
法,即最高位为符号位,“0”
表示
正,“1”
表示
负,其余位
表示
数值的大小。 反码 :正数的反码与其原码...
为什么
Byte
是从-
128
到
127
?
原文链接:(11条消息) 为什么
Byte
是从-
128
到
127
?_strongerHuang的博客-CSDN博客笔者在搜索相关问题时发现了上述帖子,但可惜原帖似有遗漏,故补充说明。 计算机是一个很神奇的东西,仅靠 0 和 1 就能运算、存储等...
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章