zoukankan      html  css  js  c++  java
  • 一个有关原码、反码、补码的小问题

    int x = 1 , y = ~x ; 求y的值。

    我开始算出结果为e,不过这个结果是错的。

    思路:因为计算机是以二进制的补码的形式来储存,所以我们要将 ~1 转换成补码,又因为补码是在反码的基础上转换而来,而反码又是原码转换来的,所以得将 ~1 装换成原码。

    以下是正确算法:

    ∵ 1 = [原] 00000001;

    ∴ ~1 = [原] 11111110;  //先将1取反 , 然后再转换成原码

    ∴ [原] 11111110 = [反] 10000001;  //将转换后的原码再转换成反码

    ∴ [反] 10000001 = [补] 10000010;  //因为反码为负数,所以转换补码需要加一

    ∴ [补] 10000010 = -2;  //补码最后的结果为-2

    如果这里面有什么不对的,或是有遗漏的,望大家勿喷。

  • 相关阅读:
    静态网页
    css
    html
    数据分析器
    初步了解计算机
    如何导出数据库的数据词典
    阅读计划
    python之文件读写
    曾梦想仗剑走天涯,看世界的繁华
    python lambda匿名函数
  • 原文地址:https://www.cnblogs.com/cmh23617/p/7072699.html
Copyright © 2011-2022 走看看