zoukankan      html  css  js  c++  java
  • 二进制补码

    在计算机系统中,数值一律用二进制补码进行表示,补码的计算规则是:

    补码 等于 原码按位 取反 再 加 1。

    有符号类型的数值,最高位是符号位,1为负数,0为正数。

    按照补码计算规则,可得 正数的补码等于其原码。

    如:

    char num;

    num = 1;

    如 +1 的原码是 0000 0001 ,补码也是 0000 0001;

    而 - 1 的补码是 1111 1111。

    以下以8位有符号类型的数值来认识一下补码:

    可以看到,当用8位来存储数据时,数据的大小范围是 -128到127。

    可以发现,+127加1后,如果是无符号的,表示的是128,但如果是有符号的,则刚好是-128的补码,再加1,是-127的补码。

    而,-1加+1后,又变为0,回到了表格的起点。

    0 1 2 3 …… 126 127  -128 -127 -126 -2 -1 0 

    可以发现,8位能表示的最大的值加1后 变成8位能表示的最小的值,形成首尾相接的一个环。

    有一个办法可以快速的算出负数的补码:

    -1的补码:0xff(255) = 256 - 1

    -2的补码:0xfe(254) = 256 - 2

    -127的补码:0x81(129) = 256 - 127

    -128的补码:0x80(128) = 256 - 128

    可以发现,负数的补码 = 256 - |负数自身|,当然这只是8位时的情况。

    如果是 n 位的:

    负数的补码 = 2^n -  |负数自身|

  • 相关阅读:
    <a>作Form表单提</a>
    图片读写分离
    MSSql ID自动增长删除数据重1开始
    WPF 控件
    Cookies
    MVC页面跳转
    MVC-各种传值方式
    mvc框架下,怎样用cookie实现下次自动登录
    SQL函数说明大全 (转)
    SQL日期(转)
  • 原文地址:https://www.cnblogs.com/qmlm8844/p/2776089.html
Copyright © 2011-2022 走看看