zoukankan      html  css  js  c++  java
  • 位运算符&&二进制

    位运算符
    二进制和十进制之间的转换
    a. 十进制-->二进制
    除2的操作,直到除到0为止,获得的余数倒序就是十进制对应的二进制
    byte 1一个字节 8位(二进制的位数)
    short 2 16
    int 4 32
    long 8位 64
    byte b=2;
    2 -> 10
    3 -> 11
    15 -> 1111
    13 -> 1101
    b. 二进制-->十进制
    1011 --> 11
    2^3*1 + 2^2*0 + 2^1*1 + 2^0*1
    8+0+2+1
    11001 --> 25
    2^4*1 + 2^3*1 + 2^2*0 + 2^1*0 + 2^0*1
    16+8+0+0+1 25
    32 16 8 4 2 1
    最高位是符号位 0正数 1负数
    原码:10001111
    反码:11110000
    原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),
    其余位表示数值的大小。
    例如,用8位二进制表示一个数,+11的原码为00001011,-11的原码就是10001011。

    反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
    补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码(原码逐位取反)的末位加1。

    3. 位运算符
    << 移位后,空位补0,被移除的高位丢弃,空缺位补0。 M << n   其实可以这么算   M << n  = M * 2^n
    >> 被移位的二进制最高位是0,右移后,空缺位补0; M >> n  = M / 2^n 正数的原码 反码 补码一致
    最高位是1,空缺位补1。
    -15 1 0 0 0 1 1 1 1
    反码 1 1 1 1 0 0 0 0
    补码 1 1 1 1 0 0 0 1
    右移3位 1 1 1 1 1 1 1 0

    补码 1 1 1 1 1 1 0 1
    反码 1 0 0 0 0 0 1 0
    >>2得出 -2
    >>> 被移位二进制最高位无论是0或者是1,空缺位都用0补。 若是正数 其实可以这么算   M << n  = M * 2^n 负数则变成好大的正数
    & 二进制位进行&运算,只有1&1时结果是1,否则是0;
    | 二进制位进行 | 运算,只有0 | 0时结果是0,否则是1;
    ^ 相同二进制位进行 ^ 运算,结果是0;1^1=0 , 0^0=0
    不相同二进制位 ^ 运算结果是1。1^0=1 , 0^1=1
    ~ 正数取反,各二进制码按补码(此时为正整数)各位取反(变成负整数),再补码
    (负整数补码原码符号位不变,先将原码减去1,最后数值位各位取反)
    ~15 0 0 0 0 1 1 1 1
    反码 == 0 0 0 0 1 1 1 1
    补码 == 0 0 0 0 1 1 1 1
    取反 ~ 1 1 1 1 0 0 0 0
    ----------------------------------
    补码 -1 1 1 1 0 1 1 1 1
    反码 ~ 1 0 0 1 0 0 0 0
    原码 -2^4 = -16
    求负整数的补码,原码符号位不变,先将原码减去1,最后数值位各位取反。
    (但由于2进制的特殊性,通常先使数值位各位取反,最后整个数加1。)
    如下 结果一样
    ~15 0 0 0 0 1 1 1 1
    反码 == 0 0 0 0 1 1 1 1
    补码 == 0 0 0 0 1 1 1 1
    取反 ~ 1 1 1 1 0 0 0 0
    ----------------------------------
    数值位取反 1 0 0 0 1 1 1 1
    +1 1 0 0 1 0 0 0 0 == -16

    负数取反,各二进制码按补码各位取反, 再补码(但是正数的补码与其原码相同)
    -34 1 0 1 0 0 0 1 0
    反码 1 1 0 1 1 1 0 1
    补码 1 1 0 1 1 1 1 0
    取反 0 0 1 0 0 0 0 1 ==33

  • 相关阅读:
    题解报告:hdu 2062 Subset sequence
    CSS3滑块菜单
    CSS3环形动画菜单
    可折叠显示的发光搜索表单
    Tab动画菜单
    侧边自定义滚动条
    css3条纹边框效果
    css3图片过滤效果
    CSS3图片悬停放大动画
    CSS3响应式侧边菜单
  • 原文地址:https://www.cnblogs.com/Lovemeifyoudare/p/11440350.html
Copyright © 2011-2022 走看看