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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 白羽蘇芳 中级黑马   /  2015-7-16 10:05  /  1203 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 白羽蘇芳 于 2015-7-22 10:22 编辑

                    6
            0000-0110
    取反  1111-1001
    加1 +0000-0001
    -------------------
            1111-1010     
   1111-1010 就是-6     计算器上按了一下 这数不是250么?

8 个回复

正序浏览
白羽蘇芳 发表于 2015-7-16 11:35
第一遍看晕了。。你想说的是8位吧。。8个字节那是long了啊。。
这样子
1111 1010 这就是-6

一个字节是8位,然后是有符号的,第一位是符号位,所以最小是1000-0000,也就是-128,最大是0111-1111,也就是127
回复 使用道具 举报
计算器好像只认识无符号,有符号的话,jVM会识别的。
回复 使用道具 举报
陈鹏No1 发表于 2015-7-16 11:19
想要装250,如果是无符号的话,使用8个字节足够。如果有符号,可以用short类型。
一个字节二进制有符号数 ...

第一遍看晕了:dizzy:。。你想说的是8位吧。。8个字节那是long了啊。。
这样子
1111 1010 这就是-6
0000-0000 1111-1010 这是250
0000-0000 0000-0000 0000-0000 1111-1010 这也是250
我這么理解对不对

那个128我还是不懂···
回复 使用道具 举报
白羽蘇芳 发表于 2015-7-16 11:18
你说的是默认的int 是4B 32bit   我是知道的   那我不定义int  我定义个short嘛  
我问的是我上面对250和 ...

不管你定义short还是int类型,计算结果都一样,只是你的计算器默认是计算int类型的。
回复 使用道具 举报
白羽蘇芳 发表于 2015-7-16 10:08
额 发帖的时候还糊涂,思考中似乎突然茅塞顿开了,看来是对整形几种大小理解不够透彻 1个字节是-128~127   ...

想要装250,如果是无符号的话,使用8个字节足够。如果有符号,可以用short类型。
一个字节二进制有符号数值是这样表示的:
(1000-0000~0111-1111)2 = (-128~127 )10
回复 使用道具 举报
陈鹏No1 发表于 2015-7-16 11:07
总共有32位二进制数,你弄错了,是这样的
        0000-0000  0000-0000  0000-0000  0000-0110
取反 1111- ...

你说的是默认的int 是4B 32bit   我是知道的   那我不定义int  我定义个short嘛  
我问的是我上面对250和-6的理解是不是正确的,以及下面那个-128怎么来的
回复 使用道具 举报
总共有32位二进制数,你弄错了,是这样的
        0000-0000  0000-0000  0000-0000  0000-0110
取反 1111-1111  1111-1111  1111-1111  1111-1001  
加1   0000-0000  0000-0000  0000-0000  0000-0001
-----------------------------------------------------------
         1111-1111  1111-1111  1111-1111  1111-1010
回复 使用道具 举报
额 发帖的时候还糊涂,思考中似乎突然茅塞顿开了,看来是对整形几种大小理解不够透彻 1个字节是-128~127  装不下250的  如果要250至少得用short来装,也就是0000-0000 1111-1010才是250   不知道我的理解对么
那又有一个新问题了。。0111-1111是127 我只记得第一位是1就代表负数  但第一位那个1除了表示符号,还有什么作用么    不太明白那个-128是怎么来的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马