课程
/后端开发
/Java
/二进制基础
为什么不直接计算11111111 11111111 11111111 11001000
而是取其对应的原码再取相反数呢?
2017-02-23
源自:二进制基础 3-1
正在回答
计算机能算出来,但你人按你这种方式算不出来啊,所以要用人为的方法进行计算啊
楼上都回答了我想说的了···,负数在计算机中是以补码方式存在的
负数在计算机中是以补码的形式存储的
计算机以补码存储数值,操作也是在补码基础上操作,左移位2个后,再需要转成原码显示给人看,而补码转成原码的过程就和原码转补码的过程相反,于是乎,先-1 再取反,明白了吗女神
负数的码是通过取反加一得到的
那么负数左移两位后要按照反方法将这个数求出来(即减一再取反)
就比如说你能知道11111111 11111111 11111111 11110010就是-14吗?
不也是要减一再取反才能得到14吗
暮女神 提问者
西瓜爱太阳_sun 回复 暮女神 提问者
我不是很清楚你问的问题的具体内容以及要求,可是按照运算符的使用规则,我们可以对这个变码按照类似同类项合并,提公因式的方法来逆向分析为什么需使用原码。经过一番推导演绎我们可以发现补码返回原码后,对参数的构造就像生成果实树后我们需要先拨皮去补码,然后才能对果实(原码)进行递归求导可得。
举报
二进制是计算机唯一能识别的语言,是学习计算机技术必备的知识