继腾讯一面和阿里二面之后!!!
#冰冷热带鱼#:
和舍友打起来没绷住
取反(~)和相反数 是不一样的!!!
做而论道_CS:
读小学时,都学过:X + (-X) = 0。
X、-X,它们两个,就是互相相反的数。
存入计算机,则有:[ X ]补 + [-X ]补 = [ 0 ]补。
[ X ]补 、[-X ]补,是互相相反的数的补码。
----------------------
如果,已知 [ X ]补,怎么求 [-X ]补?
很简单,移一次项,就行了:
[-X ]补 = [ 0 ]补 - [ X ]补。
如果 n = 8,[ X ]补 = 0000 0011,即有:
[-X ]补 = 0000 0000 - 0000 0011
= (借位 1) 1111 1101。
因为 n = 8,所以就舍弃借位,只取 8 位数,
所以:[-X ]补 = 1111 1101。
求解完成。
----------------------
反过来求,也是这样的步骤。
如由 1111 1101,也将求出:0000 0011。
怎么没有 “取反”?
取反干嘛?
取反(~),根本就是不用不着的。
取反(~)和相反数 是不一样的!!!
做而论道_CS:
取反(~)和相反数 是不一样的!
---------------
当然不一样。
取反(~),是逻辑运算;
取相反数,是数学运算。
谁都知道它们不一样。
取反(~)和相反数 是不一样的!!!
做而论道_CS:
另外,由补码换算到十进制数,也是极其简单的事。
你只需记住:【补码首位的权,是负数】。
一般的八位二进制数,各个位的权是:
128、64、32、16、8、4、2、1;
如果是八位的补码,各个位的权则是:
-128、64、32、16、8、4、2、1。
例如,有一个补码:1110 0001,
它代表的十进制是:-128 + 64 + 32 + 1= -31。
再看,另一个补码:0110 0001,
它代表的十进制是:0 + 64 + 32 + 1 = +97。
仅仅使用【进制转换】,不就完事了!
----------------------
那么,所谓的:
机器数真值符号位原码反补码正数三码与正数相同
负数取反加一符号位不变符号位也参加运算模同余 ...
这一大堆乱七八糟的概念,不就都是垃圾嘛!
进位,是小学二年级的知识点吧?
舍弃进位,很难理解吗?
老外竟然能弄出那么大一堆概念!
老外的数学水平,由此可见一斑。
谁要是跟老外学算术,立刻、马上、直接,就掉沟里去了!
我们的计算机老师,数学水平也太洼,进位,是看不透的。
所以,捡个鞋拔子就当成玉如意了。
不懂补码的本质,也就只能跟风了。
在大学里面,兜着圈子讲小学的知识,带着学生往坑里跳!
甚至还把这些垃圾,列为考研的内容!
真是毁人不倦坑人不浅!
现在知道我们缺芯片用的原因了吧!
取反(~)和相反数 是不一样的!!!
做而论道_CS:
用两位十进制运算时,舍弃进位,就是:减去一百。
那么,加 99、再减 100,当然就是 “-1” 了!
计算机使用的是二进制数。
八位二进制数是:0000 0000 ~ 1111 1111。
也就是十进制数:0 ~ 255。
八位二进制的进位,是:2^8 = 256。
那么:加 255 (1111 1111),再减 256,就是 -1 !
同理:+254 (1111 1110),就是 -2。
+253 (1111 1101),就是 -3。
。。。 。。。
+128 (1000 0000),就是 -128。
以上这些正数,就是计算机专家 “发明” 的补码!
你简单看一眼,你一定能推出关系式:
负数的补码 = 256 + 该负数。
一般化:
负数的补码 = 2^n + 该负数。
n,是补码的位数。
例:求-31 的八位补码是什么?
解:256-31 = 225 = 1110 0001 (二进制)。
这不就求出来了吗!
简不简单? 意不意外?
哪里还需要用什么 “原码取反加一” !
-------------------
忽略进位,128 ~ 255,就都能当负数使用。
但是,加 127,会怎样呢?
加上 127,是不会产生进位的!
(或者说:进位 = 0。)
舍弃进位,也就是减去一个 0 而已。
因此,127,也就当不成负数了。
所以,加 0 ~ 127,就都是 “加上正数”。
-------------------
求正数的补码,公式也是雷同的:
正数的补码 = 256 + 该正数。
要知道,加上 256,就是出现一个进位。
进位必须舍弃,所以,256 就不用加了。
于是,公式可以简化为:
正数的补码 = 该正数。
在此处,这就证明了:
零和正数的补码,就该数字本身。
举例,就不用了吧。
计算机专家也是这么说的:
正数的补码,就是该正数。
但是,他们并没有给出证明。
为什么不加以证明呢?
因为这些专家:
弄不懂什么是进位,
更不懂什么是舍弃进位!