黑马程序员技术交流社区

标题: 新人再次发帖求解 已解决 [打印本页]

作者: 邵阳    时间: 2012-6-3 20:43
标题: 新人再次发帖求解 已解决
本帖最后由 邵阳 于 2012-6-6 13:32 编辑

3:为什么6的二进制是00000110,通过运算后得出-6的运算值是11111010,但是11111010的十进位制是250?
作者: 张亭    时间: 2012-6-3 21:14
本帖最后由 张亭 于 2012-6-3 21:16 编辑

同学,数字的二进制表现形式有原码,反码,补码
计算机存放数据一般用的是补码
关于这方面知识请自行查阅
简单说一下,6的二进制是00000110,指的是原码(正数的补码形式就是原码)
-6的运算值是11111010,这是补码,怎么来的呢?就是把6的原码00000110取反得11111001,然后加1得到补码形式
如果把11111010看作原码且不考虑符号位,它表示的是250,
这些很基础的东西楼主一定要弄清楚哦
作者: 杨海波    时间: 2012-6-3 21:18
本帖最后由 杨海波 于 2012-6-3 21:29 编辑

首先 你错了-6的二进制不是11111010而是1111 1111 1111 1111 1111 1111 1111 1010 整数占4个字节也就是32位 6的二进制是0000 0000 0000 0000 0000 0000 0000 0110 而11111010其实是0000 0000 0000 0000 0000 0000 1111 1010这个跟前面不是一个值吗 肯定不一样。多看看基础 这个很简单的
负数的二进制是正数的二进制取反码再加1,这些基础你得记住。加油一起奋斗。
作者: 江南    时间: 2012-6-3 21:22
6的二进制就是110  2的二次方加2的一次方就刚好等于6 所以就是110  也就是0000 0110 不够8位就用0补足
至于-6 负数是正值的补码形式表达。00000000 00000000 00000000 00000110 是 6的 原码。
反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。
取反操作指:原为1,得0;原为0,得1。(1变0; 0变1)
反码就是:11111111 11111111 11111111 11111001
补码:反码加1称为补码。
加1 后:11111111 11111111 11111111 11111010
-6 在计算机中表达为:11111111 11111111 11111111 11111010
但是11111010的十进位制是250 因为最高位1表示符号位 如果它不当做符号为就成了250

作者: 孟浩然    时间: 2012-6-3 21:22
大哥,十进制的负数都用的是二进制的补码啊,你那个11111010是6的补码啊,二进制转十进制用的是原码
作者: 陆建平    时间: 2012-6-3 21:24
10进制的110是1*10*10+1*10=110;
同理:00000110=1*4+1*2=6;
二进制服输的表示方法是:"各位数取反,在家一"。
所以11111010表示的是,负数6。
另外,二进制第一位是0,表示正数,第一位是1表示负数。
作者: 邵阳    时间: 2012-6-3 21:30
张亭 发表于 2012-6-3 21:14
同学,数字的二进制表现形式有原码,反码,补码
计算机存放数据一般用的是补码
关于这方面知识请自行查阅

透彻啊 能不能再详细些啊!原码和补码怎么看出来啊,看着一样啊
作者: 黑马-李勇    时间: 2012-6-4 00:18
二进制左边第一位是符号位,0是正数1是负数。6是00000110(最左边是0);-6是11111010是正数取反加1得出的(最左边是1)。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2