二进制

来源:互联网 发布:淘宝实人认证在哪里 编辑:程序博客网 时间:2024/06/05 04:25

二进制基本概念:

java中 int 4个字节,32位,无论在IBM还是惠普的机器上都是4个字节。转换成二进制是32个0或1。

对于有符号位(java中都是有符号位的)而言:

  • 二进制的最高位即第一位是符号位:0代表正数,1代表负数;
  • 正数的原码,反码,补码都一样;
  • 负数的反码 = 原码符号位不变,其他位取反;
  • 负数的补码 = 反码 + 1;
  • 0的反码和补码都是0;
  • 计算机都是以补码的方式来计算的;

位运算 和 移位运算:速度最快,直接在内存中操作,不需要压栈

java中有4个位运算:
分别是按位与&,按位或|,按位异或^,按位取反~
规则如下:

  • 按位与& :两位全为1,结果为1
  • 按位或| :两位有一个为1,结果为1
  • 按位异或^ :两位一个为1,一个为0,结果为1
  • 按位取反~ :0 -> 1,1 -> 0

java中有3个移位运算符:
算数左移<<:符号位不变,低位补0
算数右移>>:低位溢出,符号位不变,并用符号位补溢出的高位
逻辑右移>>>:低位溢出,高位补0