• 带符号数的补码


    带符号数的补码

    email:778138708@qq.com

    • 正数的补码与其原码相同,最高位为符号位,其他各位为数值位。
    • 负数的补码为它的反码加1。

    [+0] = [+0] = 00000000
    [-0] = [-0] + 1 = 11111111 + 1 = 00000000

    带符号数的补码表示的数值范围

    1000 0001B为-127的补码
    1000 0000B为-128的补码

    带符号数补码的特点

    • 0的补码表示是唯一的,没有+0和-0之分。
    • 一个字节的有符号二进制数的补码所能表示的范围为:-128 ~ +127。
    • 字的补码表示范围为:-32768 ~ +32767。

    带符号数补码的位权

    -128的补码为1000 0000B
    一个字节的带符号数的补码的位权

    -27 26 25 24 23 22 21 20
    -128 64 32 16 8 4 2 1

    例 通过补码求真值,补码10010101B = -27 + 24 + 22 + 20 = -107D

    比较无符号数和有符号数的位权

    • 无符号数的位权
    27 26 25 24 23 22 21 20
    128 64 32 16 8 4 2 1

    有符号数补码11101010的真值为:-27 + 26 + 25 + 23 + 21 = -22D
    有符号数补码01101010的真值为:26 + 25 + 23 + 21 = 106D

    补码转换为真值

    • 补码转为原码,求真值:再次取补得到它的原码,再转换为真值。

    例 已知[X] = 11101010,求X的真值。
    解:
    原码为:10010101 + 1 = 10010110
    真值为:-(24 + 22 + 21)= -22

    • 利用补码的位权,求真值。

    补码11101010的真值 = -27 + 26 + 25 + 23 + 21 = -22D

  • 相关阅读:
    编程及应用中的一些快捷键(持续更新中)
    html5入门(head部分的基本认识)
    html5入门(j简单了解html)
    动态规划 ship
    js 解决两值交换
    styled-components解决全局样式'injectGlobal' 废除的问题
    mysql sql更新密码失败
    window nginx 基础命令
    MySQL 8.0
    "unexpected console statement” in Node.js
  • 原文地址:https://www.cnblogs.com/2018jason/p/16098457.html
Copyright © 2020-2023  润新知