进制
1、进制介绍
- 进位制
- 二进制、八进制、十进制、十六进制
- Java默认十进制;二进制:数值前面以0b开头,b大小写都可以。
八进制:数值前以0开头。十六进制:数值前以0x开头
2、进制转换
- 二进制到十进制的转换;
公式:系数*基数的圈次幂 相加
系数:每一位上的数
基数:几进制就是几
权:从数值右侧,以0开始,逐个+1增加
2.十六进制转十进制
3.十进制手动转到任意进制
4.8421码/BCD码
5.计算器
6.代码转换:String s =Integer.toBinaryString(i: )
String s =Integer.toOctalString(i: )
String s =Integer.toHexString(i: )
3、原码反码补码(二进制)
- 原码:看数据
- 反码:转数据
- 补码:运算数据
超过数据类型的数值
位运算符
1、位运算(十进制转二进制进行运算)
- & 位与:(有假则假)1表示true,0表示false,同时为1时为true;
- | 位或:遇true则true,遇1则1;
- ^位异或:相同为false(0),不同为true(1)
一个值被同一个数异或两次,得到的结果还是值本身。
4.~ 取反:全部取反,0变1,1变0(包括符号位)
2、位移运算符
<< 有符号左移:二进制位向左移动,向左移动几位就是乘以2的几次幂
00000010 << 1 = 00000100
12<<1 =24;
>> 有符号右移:二进制位向右移动,向右移动几位就是除以2的几次幂
00000010 >> 1 = 00000001
>>>无符号右移:都补0,会忽略正负