zoukankan      html  css  js  c++  java
  • 原码、反码和补码

    先看一下常见资料给出的定义:(8位整型)
     
    原码:-127~127
    一个二进制数左边加上符号位后所得的码。最高位为符号位,"0"表示正,"1"表示负。
    反码:-127~127
    正数的反码——与原码相同。
    负数的反码——符号位为“1”,数值部分按位取反。
    补码:-128~127
    正数的补码——与原码相同。
    负数的补码——将其原码除符号位之外的所有位取反后加1。即“反码+1”。
     
     
    原码:用于计算机处理数据、并区分正负数。
    补码:用于计算机运算减法。(减一个数,变成加这个负数的补码,如:10-2 变成 10 + (-2的补码)
     

    转自:https://zhuanlan.zhihu.com/p/80618244
     
     

    由补码,求原码:

    正数:补码和原码相同;

    负数:补码先减一,得到反码,反码除符号位外,取反,再得到原码。和原码求补码的过程正好反过来;

    或者,求负数补码,直接用“左右找1, 1不变,中间取反求得”就是找到该补码的左边和右边的第一个1,然后左边和右边的第一个1都不变,再把这两个1中间的数都取反,就得到其原码了;

  • 相关阅读:
    172. Factorial Trailing Zeroes
    96. Unique Binary Search Trees
    95. Unique Binary Search Trees II
    91. Decode Ways
    LeetCode 328 奇偶链表
    LeetCode 72 编辑距离
    LeetCode 226 翻转二叉树
    LeetCode 79单词搜索
    LeetCode 198 打家劫舍
    LeetCode 504 七进制数
  • 原文地址:https://www.cnblogs.com/Allen-rg/p/11975118.html
Copyright © 2011-2022 走看看