zoukankan      html  css  js  c++  java
  • 补码

    正数的补码等于自身。负数的补码等于其绝对值取反加1(符号位不参与此运算)。

    例如计算-1的补码:先把1按位取反得(0)1111…110, 加上1得(0)1111…111,所以-1的补码就是(1)1111…111。

    使用补码的好处是符号位可直接参与运算,不用单独考虑,同时,减法能看作加法处理。

    例如:

    2-1 = 2+(-1) 转换为二进制表示就是: 10 + 1111…111 = 1; (最高位的进位被舍弃,故符号位为0)

    2-3 = 2+(-3) 转换为二进制表示就是: 10 + 1111…101 = 1111…111; (即-1)

    引申一下,所以根据这个道理,想取无符号整数的最大值很简单,只需对0取反:

    unsigned int max = (~0);

    但有符号整数就需要:

    int max = ~(1<<31);

    而取有符号整数的最小值则是:

    int min =  (1<<31)+1;

  • 相关阅读:
    冒泡排序
    快速排序
    玩转git版本控制软件
    django内容总结
    ajax图片上传功能
    随机验证码
    制作博客系统
    django自带的用户认证和form表单功能
    COOKIE 与 SESSION
    Ajax知识
  • 原文地址:https://www.cnblogs.com/k330/p/2232357.html
Copyright © 2011-2022 走看看