进制
介绍:
对于整数,有四种表示方式:
- 二进制:0,1 ,满 2 进 1.以 0b 或 0B 开头。
- 十进制:0-9 ,满 10 进 1。
- 八进制:0-7 ,满 8 进 1. 以数字 0 开头表示。
- 十六进制:0-9 及 A(10)-F(15),满 16 进 1. 以 0x 或 0X 开头表示。此处的 A-F 不区分大小写
1.进制的转换
- 计算机基础已学复习即可
2.位运算
java中有7个位运算(&、|、 ^ 、~、>>、<<和 >>>)
- 要先得到补码,然后在进行运算
2.1位运算符
- 算术右移 >>:低位溢出,符号位不变,并用符号位补溢出的高位
- 算术左移 <<: 符号位不变,低位补 0
- >>> 逻辑右移也叫无符号右移,运算规则是: 低位溢出,高位补 0
- 特别说明:没有 <<< 符
public class BinaryTest{
public static void main(String[] args){
//>>算术右移低位溢出<<算术左移动,符号位不变,符号位补溢出的高位
//二进制往后移一位就/2
//向前移一位就*2
int a = 1>>2; //1 => 00000001 => 00000000 01 本质1/2/2 = 0
int c = 1<<2; //1 => 00000001 => 00000100 本质 1*2*2 = 4
System.out.println("a=" + a);
System.out.println("b=" + c);
System.out.println(4<<3);//32
System.out.println(15>>2);//3
}
}
3.二进制的运算说明
- 二进制是逢2进位的进位制,0、1是基本算符
3.1原码、反码、补码
- 二进制的最高位是符号位:0表示正数,1表示负数
- 正数的原码,反码,补码都一样(三和一
- 负数的反码 = 它的原码符号位不变,其他位取反
- 负数的补码 = 它的反码+1,负数的反码 = 负数的补码-1
- java没有无符号数,换言之,Java中的数都是有符号的
- 在计算机运行的时候,都是以补码的方式来运算的;
- 当我们看运算结果的时候,要看他的原码