首页 > 编程知识 正文

快速翻书(正在准备计算机请不要关机)

时间:2023-05-06 17:44:39 阅读:1266 作者:2115

问题A的价值是什么?答案是a=1024。你觉得有点神奇吗?这是计算机科学的基础知识,是一个关于数字在计算中如何表达的问题。我们来看看为什么是1024。

数字的表达

计算机中的数字都是二进制表示。在计算机眼里,正数和负数都是由0和1组成的,符号本身就是数字。通常,最高位用作符号,0为正,1为负。常用的代码有原码、补码和补码。我们现在的电脑使用补码。

补码正数以最高有效位为0表示,其余为数字的绝对值。例如,在8位机器[1]=00000001中,负数如何表示?负数等于2的n次方,其中n为机器的位长,减去其绝对值,如[-1]=2 8-1=1111111。

那么有没有更快的方法找到负数的补码呢?答案是肯定的,只要把正数一点一点倒过来,然后加1,就可以得到正数的补码。比如1的补码是0000 0001一点一点,然后你得到1111 1110,再加1得到1111 1111。结果与上述一致。

从上面我们可以发现,正数的补数也可以用负数用同样的原理得到,而且运算方法和用正数得到负数是一样的,也就是说~ x ^ 1=-x,这是我们书中的补数运算,也是a=~ 1024 ^ 1;a=1024的原因。

数字用补码表示后,计算机可以直接用二进制加法计算,不需要在意数字是正数还是负数,因为符号本身是符号化的。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。

  • 相关阅读