zoukankan      html  css  js  c++  java
  • 二进制原码、反码、补码和位运算

    最近复习数据结构和算法,顺便复习下计算机的基础。

    1、二进制原码、反码、补码

    计算机中存储和运算是以二进制的补码进行,原码是方便用户的习惯。

    正数的反码、补码都等于原码;

    负数的反码是符号位(最高位)不变,其他位取反,补码为反码+1,逢2进1。

    int为4个字节,也就是32个比特,int -3 其二进制表示为

    10000000 00000000 00000000 00000011,内存运算时反码为

    11111111 11111111 11111111 11111100

                                                          +1   为补码

    11111111 11111111 11111111 11111101

    2、位运算

    负数是以补码参加运算,结果再转成原码;

    &  与  有0则0;

    |  或  有1则1;

    ^  异或  不同则位1;

    ~  取反  

    <<  左移  右边补0,左移几位则等同于乘以2的几次方;

    >>  右移  左边是补高位值,右移几位等同于除以2的几次方;

    >>>  无符号右移  左边补0;

    打听下这个变量名谁起的
  • 相关阅读:
    IOS-在ARC项目中使用非ARC框架或者类库
    IOS-Social.framework
    IOS- 单例
    IOS-二维码的实现
    IOS-JSON & XML解析
    SCOI2011 地板 (BZOJ2331)
    Formula 1(URAL1519)
    Tour in the Castle(ZOJ3256 矩阵加速插头dp)
    Tony's tour(poj1739,男人题之一,插头dp)
    POJ3133(插头dp)
  • 原文地址:https://www.cnblogs.com/wmqiang/p/14873400.html
Copyright © 2011-2022 走看看