zoukankan      html  css  js  c++  java
  • 源码、补码、反码基础

     首先,正数的原码,反码,补码都是相同的。

      所以,这里讨论负数的原码,反码,补码的相互转化问题。

     1.  负数原码和反码的相互转化

      负数原码转化为反码:符号位不变,数值位按位取反。

      如:

    原码 1100 0010
    反码 1011 1101

      负数反码转化为原码:符号位不变,数值位按位取反。

    反码 1011 1101
    原码 1100 0010

     2.  负数原码和补码的相互转化

      负数原码转化为补码:符号位不变,数值位按位取反,末尾加一。

    原码 1100 0010
    反码 1011 1101 //符号位不变,数值位按位取反
    补码 1011 1110 //末尾加1

      负数补码转化为原码:符号位不变,数值位按位取反,末尾加1。

    补码 1011 1110
           1100 0001 //符号位不变,数值位按位取反
    原码 1100 0010 //末尾加1

     3.负数反码和补码的相互转化

      负数反码转化为补码:末尾加1。

    反码 1011 1101
    补码 1011 1110

      负数补码转化为反码:末尾减1(注意,此处的反码是指原码的反码)。

    补码         1011 1110
    原码的反码   1011 1101
    //减法 借位        

     4.总结

      正数的原码、反码和补码都相同。

      负数原码和反码的相互转换:符号位不变,数值位按位取反。

      负数原码和补码的相互转换:符号位不变,数值位按位取反,末位再加1。

  • 相关阅读:
    jenkins(3): jenkins执行shell命令
    jenkins(2): jenkins定时构建项目
    jenkins(1): jenkins安装以及从gitlab拉取代码
    gitlab之一: gitlab安装配置使用
    playbook role应用
    Spark(一)—— 大数据处理入门
    Kafka(二) —— Server端设计原理
    Kafka(一) —— 基本概念及使用
    LeetCode 第 159 场周赛
    LeetCode 第 155 场周赛
  • 原文地址:https://www.cnblogs.com/tnt-33/p/11381752.html
Copyright © 2011-2022 走看看