• 自认为隐藏在计算机补码中的秘密(原来这么简单)


       大晚上的写计算机组成原理作业,发现 x - y=【x】补+【-y】补,而【-y】补 就是机器负数,就是  【-y】补  包括符号位都取反+1.

    eg:y=-0.0110      【y】补 = 1.1010       【-y】增补=0.0110 = - y    (增补的意思是连同符号位都取反+1,因为普通的补不需要符号位也取反)

        符号位取反挺好理解的,因为毕竟是求一个数的相反数嘛,符号位总要有一次取反的,那么抛去符号位的变化

    也就是说   y = 【【y】补】补,也就是说一个数,经过一次取反+1,在取反+1仍是它本身

    eg:

    二进制数x=1010001

    取反           0101110

    +1              0101111

    取反           1010000

    +1              1010001    和原来一样

    eg:

    二进制数x=000

    取反           111

    +1             000

    取反           111

    +1              000    和原来一样

    其实,十进制数也是如此,十进制数取反是什么意思呢,就是用9减去这个数,5取反4,3取反6

    eg:

    十进制数x=79

    取反           20

    +1              21

    取反           78

    +1              79    和原来一样

    任何进制都是一样的,但是为什么两次(取反+1)还是它本身。像十进制取反就是用9减去这个数,16进制就是用15减,二进制就是1去减喽

    1-0=1 

    1-1=0就是取反的含义。

    用十进制来解释原因更便于理解。比如十进制数x=79。取反就是99-x,+1就是99-x+1=100-x,然后取反就是99-(100-x)=x-1,再+1,就是x,哈哈哈

    比如十进制数x=3586。取反就是9999-x,+1就是9999-x+1=10000-x,然后取反就是9999-(10000-x)=x-1,再+1,就是x,哈哈哈

    无聊的数学游戏!!!   懂了的话,其它进制也是类似的.

    二进制   x=101, 取反就是111-x=010,+1就是111-x+1,就是1000-x,然后取反就是 111-(1000-x)=111-1000+x=-1+x,再+1,就是x,哈哈哈。

    是不是挺简单的。

  • 相关阅读:
    CI(CodeIgniter)框架介绍
    yii框架
    Jenkins简单使用介绍
    UNITY_INITIALIZE_OUTPUT宏
    UNITY地图寻路及服务器解决方案
    bloom
    Rigidbody中 Angular Drag (角阻力):
    Unity5 Shader Stripping 导致 LightMap 全部丢失的解决方法
    移动端播放视频文件
    UNITY5 为什么Inspector视图中脚本前面的勾选框没了
  • 原文地址:https://www.cnblogs.com/caiyishuai/p/13270849.html
Copyright © 2020-2023  润新知