A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© huangye 中级黑马   /  2016-3-23 22:32  /  1328 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 huangye 于 2016-3-23 23:21 编辑

为什么-128可以?求详解

13 个回复

正序浏览
实际上我们知道就行,在开发中也不会去深究这些的
回复 使用道具 举报
因为byte类型只占一个字节,也就是8个二进制位,第一位是表示正负的,而1000 0000就表示-128,0000 0000表示0,0111 1111表示127
回复 使用道具 举报
-128的原反补码计算过程,哪位大神给写下
回复 使用道具 举报
fighting2016 发表于 2016-3-24 15:00
1,byte占8位,可表示范围为 0 至 2^8  - 1 = 255 的 256 个数
2,最高位为符号位,1为负,0为正,剩下 7  ...

如果是规定就可以不纠结了,谢谢!!!
回复 使用道具 举报
1,byte占8位,可表示范围为 0 至 2^8  - 1 = 255 的 256 个数
2,最高位为符号位,1为负,0为正,剩下 7 位可以表示范围为 0 至 2^7 - 1 = 127的 128 个数
3,加上符号位后,byte表示的范围为   -127 ~ -0  ,0  ~ 127 , 共 256 个数
4,因为初现  +0  和  -0这样的两个“0”,是不被允许的,所以人为规定 -0 为-128,这样保证的负数(最高位为 1)范围为 -128 ~ -1  共有128个,正数(最高位为0)范围为 0 ~  127  共128个,一共还是256个

这样说应该比较明了了~~~
回复 使用道具 举报
因为一个有8位二进制表示,及0=00000000;但是在计算机中第一位表示符号,0为正,1为负。所以-1=10000000;-2=10000001;127=01111111;-128=11111111;
回复 使用道具 举报 1 0
因为有0在中间分开
回复 使用道具 举报
Byte在内存中占一个字节,一个字节是八位 也就是八个1 ,即256个数,从0左右分 算上零-128~127正好256个数。
回复 使用道具 举报
604840337 发表于 2016-3-24 09:24
你没有发现鼓规律吗? short 2^15  int 2^21  byte 2^7  明白吗

纠正一下  int   2^31
回复 使用道具 举报
你没有发现鼓规律吗? short 2^15  int 2^21  byte 2^7  明白吗
回复 使用道具 举报
因为有一个0,为了方便
回复 使用道具 举报
-0代表 -128
回复 使用道具 举报
因为short类型 范围在(-2^15)到(2^15)-1之间 包含 -128  所以short类型定义值的时候  可以 定义-128
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马