操作系统之系统抖动
有符号数与无符号数详解
做而论道_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:
一个二进制数,或者十进制数,
它是无符号数,还是有符号数呢?
取决于,你的算法!
而不是取决于最高位!
学习高级语言,就学愚了!
因为,高级语言中,根本就没有 “进位” 的概念。
辛辛苦苦学会了高级语言,却没想到:
数学水平,就退化到幼儿园去了!
有符号数与无符号数详解
做而论道_CS:
在计算机系统中,只有二进制数字。
并没有什么“有符号数、无符号数”。
当然,也就没有什么 “原码反码补码”。
更没有 “符号位” 了!
作为数字,无论二进制数、十进制数,或其它进制,
其本质都是一样的,它们:
都是数 !
都是数 !!
都是数 !!!
如果用数字代表其它的信息,才叫做 “码”。
如:学号、车牌门牌、电话、驾照 ...
=基本常识==================
计算机中,只有加法器,而且位数是固定的。
=======================
最简单的是八位机,它只会进行如下运算:
八位二进制 + 八位二进制 = 进位、八位的和。
进位,是单独存放的。你可以使用它,也可忽略它。
=关键知识==================
如果进位为一,而你却舍弃了它,
那么,此次加法,就是减法运算。
=======================
用十进制来说明,比较容易理解。
例如,两位十进制,范围是:0 ~ 99。
(最大值是 99。)
那么:25 + 99 = (一百) 24
25 - 1 = 24
如果你舍弃进位,这两种算法,功能就是相同的!
即,舍弃了进位:
本次加法,就是减法运算了;
+99,也就是-1 了!
你有疑问吗?
------------------
八位二进制数的范围是:0000 0000~1111 1111,
换算成十进制数,就是:0 ~ 255。
此处的最大值 255,也就可以当做-1 使用!
如 13 - 1 = 12,八位机将如下计算:
0000 1101
+ 1111 1111
---------
(进 1 ) 0000 1100
舍弃了进位,你就用加法,实现了减法运算!
你有疑问吗?
------------------
这个二进制数 1111 1111,它到底是 255、还是-1 ?
它究竟是个什么东西?
这与 “符号位原码反码” 一丁点关系都没有!
它只取决于你的算法。
你保留进位,它就是 255 (即正数,也即无符号数)。
你舍弃进位,它就是-1 (即负数)。
也就是说,1111 1111 的值,是正数还是代表负数?
取决于【你如何看待进位。】
并不是取决于什么 “符号位” !
懂吗?
Vue中的router-view解释
JSU_曾是此间年少:
听君一席话,如听一席话
el-table和el-switch结合使用无法切换问题解决
没有知觉的植物:
尝试这个方法:
在el-switch设置@change= "changeSwitch" ;
js: changeSwitch() {
// 强制更新el-switch
this.$forceUpdate()
},