社区
Java SE
帖子详情
byte 表示范围是-128 至 127 . 那么-128是如何表示出来呢?
孤尽JavaSea
2009-10-09 09:52:24
如果是:
1000 0000
第一位是符号位。
那么应该是 -127
强烈质疑中。。。。
...全文
980
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 了。
补码的
表示
范围
_关于
byte
的
范围
为什么是 -
128
——
127
?
本文详细解释了Java中
byte
类型的取值
范围
为何为-
128
至
127
,通过介绍原码、反码及补码的概念,深入浅出地阐述了计算机内部数据
表示
方法,帮助读者理解
byte
类型的数值
范围
。
原码 反码 补码 数据类型的
表示
范围
(例如
byte
型为什么是-
128
~
127
)
本文深入解析C++中数值的原码、反码、补码概念及其转换,阐述了这些编码方式如何简化计算机的算术运算,特别是负数的处理。通过实例,详细解释了
byte
型数据的
表示
范围
为何设定为-
128
至
127
。
为什么
byte
的
表示
范围
为-
128
~
127
本文解析了8位有符号整数的
表示
方法,包括原码、反码和补码的概念,并通过具体例子展示了如何计算正数和负数的二进制
表示
。特别指出-
128
的特殊
表示
。
java中
byte
类型
表示
范围
为什么是-
128
~
127
?
本文详细解析了计算机内部
byte
类型的
表示
方式,包括其8位二进制组成、符号位的作用,以及正负数的补码
表示
方法。特别讨论了如何解决两个补码都可能
表示
0的问题,并解释了为何将10000000定义为-
128
的补码。
为什么一个
byte
表示
的数的
范围
是 -
128
~
127
本文深入解析计算机为何采用补码而非原码
表示
整数,通过实例展示补码如何确保加减运算的准确性,避免原码下可能出现的运算错误。
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章