数组名不能被赋值的原因 | 您所在的位置:网站首页 › 博图中如何对数组赋值0 › 数组名不能被赋值的原因 |
为什么1个字节的取值范围是-128~127
做而论道_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。 仅仅使用【进制转换】,不就完事了嘛? 原码反码取反加一? 这些,根本就用不着啊! -------------------------- 补码的来历,仅仅是在于:你如何处理进位。 补码,并不是来自: 机器数真值符号位原码反码正数三码相同负数取反加一符号位不变模同余。。。 计算机专家,如果有小学毕业的水平,就不会费这么大的事来解释补码! 唉,老外数学(算术)不好,由此可见一斑。 为什么1个字节的取值范围是-128~127做而论道_CS: 八位二进制数,总共有 256 个数值。 用其一半 (128 个) 代表负数,即:-1 ~ -128; 剩下一半 (128 个) 保持原值,即: 0 ~ +127。 此时,这些二进制数,就被老外称之为:补码。 (其实,它们仍然是二进制数,根本就不是什么 “码”!) 那么,八位补码的表示范围,就是:-128 ~ +127。 负数,与其八位的补码,对应如下: ================== 负数 补码 -1 1111 1111 = 255 (十进制) -2 1111 1110 = 254 (十进制) -3 1111 1101 = 253 (十进制) 。。。。 。。。。 -128 1000 0000 = 128 (十进制) ================== 你如果小学毕了业,你就能看出它们的关系: [负数]补码 = 256 + 负数。 通用公式: [负数]补码 = 2^n + 负数。 n 是二进制数的位数。 求补码,就是这么简单! 例如,-27 的八位补码是什么? 解: [-27 ]补 = 256 - 27 = 229, 229 = 1110 0101 (二进制)。 补码,这不就求出来了吗! 符号位原码反码取反加一,有用吗? 都是用不着的! 由此可知: 补码,与原码反码,并无任何关系。 补码的范围,也与它们的范围对不上,也不奇怪。 为什么1个字节的取值范围是-128~127做而论道_CS: 虽然,计算机,使用二进制数。 但是,二进制数,它也是数。 并不是什么 “码” ! 二进制数与十进制数,两者的运算方法,是雷同的。 无论二进制、十进制或其它进制,都有如下这个规律。 ================= 保持位数不变,舍弃进位,就可以: 【把正数当负数、把加法当减法!】 ================= 例如,两位十进制,范围是:0 ~ 99。 (最大值是 99。) 那么:25 - 1 = 24 25 + 99 = (一百) 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 (的补码)。 也就是说,其值是正是负: 取决于【你如何看待进位。】 并不是取决于什么 “符号位” ! 懂吗? 为什么1个字节的取值范围是-128~127做而论道_CS: 八位原码反码的范围是-127 ~ +127。 为什么补码的范围却是-128 ~ +127 ! 为什么会有这样的疑问? 其原因就是: “符号位原码反码取反加一”,这个说法,是错误的。 ---------------------- 计算机中,只有二进制数。 并没有什么 “原码反码补码”。 “符号位原码反码取反加一”,完全是无稽之谈! 计算机专家,连蒙带唬的,编造了这一批谎言, 也就是想要表示:计算机是多么的神秘! 也好借此机会,多赚点讲课费。 再探C++函数参数里的const, 处理 error : passing const as "this"aqicure: 太对了哥 |
CopyRight 2018-2019 实验室设备网 版权所有 |