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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 韩鹏 中级黑马   /  2014-6-5 00:02  /  1207 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 韩鹏 于 2014-6-5 00:03 编辑

第一个问题:java自学视频第二天中讲到字节占8个二进制位,范围是-128~127,可是ip是由字节组成,为什么它的范围却是0~255,也就是00000000~11111111?问了下百度,说是字节中8个二进制位首位是符号位,最大为127就是01111111,最小为-128就是10000000,前边那个理解,可是为什么10000000是-128呢,若果1代表负数的话,后边一串0,那结果不是0吗?

第二个问题:老师讲正数的二进制转成对应的负数要取反+1,那看负数的二进制转为十进制,是不是要-1再取反也就是得到它的正数值呢,比如10000011,如果它没有符号位的话是131,要将首位的1看做符号位的话是-3吗?还是按照取反+1的反运算先-1再取反得01111101=125,填个负号就是-125,怎么算啊?好晕!!+_+

话说我问的问题是不是有点弱智呢..... o(╯□╰)o



评分

参与人数 1技术分 +1 收起 理由
轻语。 + 1 淡定

查看全部评分

7 个回复

倒序浏览
其实看这里的时候我也比较晕的,我是死记住怎么求负数就直接看下面了。这问题,不弱智的。不过和后面好像关系不大哦
回复 使用道具 举报
首先 要知道计算机中2种数 无符号数 和有符号数
如8位2进制
无符号数 0-255 (0000 0000b-1111 1111b)
有符号数 -128 - 127 ( 1000 0000b-0111 1111b)

然后要知道什么是 原码 反码 和补码 计算
正数的补码取反+1后,为对应的负数的补码
负数的补码取反+1后,为对应的绝对值
如 1 补码为 0000 0001 取反+1后 1111 1111  表示-1
   -1 补码   1111 1111  取反+1后 0000 0000 绝对值1
第一个问题  1000 0000 取反+1为 1000 0000 为128,所以1000 0000表示 -128

第二个问题  10000011  1是符号位的话 取反+1 绝对值125  由于是负数 所以是-125
                                
        

评分

参与人数 1技术分 +1 收起 理由
轻语。 + 1 很给力!

查看全部评分

回复 使用道具 举报
ip地址使用的是无符号二进制数字,包括和ip地址相关的子网掩码都是无符号数字,在确定同一个子网的时候也是用ip地址和子网掩码进行与操作来确定。8位无符号数的范围那就是0-255.至于后面一个问题那是因为计算为了计算的方便使用补码对数据进行编码(当符号位为负数的时候,对各个位按位取反然后加1)得到结果。

点评

懂了 ^_^  发表于 2014-6-5 09:32
回复 使用道具 举报
楼主很有潜质
回复 使用道具 举报
诺诺 发表于 2014-6-5 00:31
其实看这里的时候我也比较晕的,我是死记住怎么求负数就直接看下面了。这问题,不弱智的。不过和后面好像关 ...

:handshake
回复 使用道具 举报
葛生辉 发表于 2014-6-5 01:46
首先 要知道计算机中2种数 无符号数 和有符号数
如8位2进制
无符号数 0-255 (0000 0000b-1111 1111b)

有种豁然开朗的感觉!:lol
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马