javaSE复习之——进制编码
进制的运算
二进制向右移动两位 :15 >> 2 = 3
- ps:1111 向右移动两位 等于 0011 = 3
二进制向左移动两位 :15 << 2 = 60
- ps:1111 向左移动两位 等于 111100 = 60
异或运算 :2 ^ 3 = 1
- 例子:0010 ^ 0011 = 0001
ps:也就是相同为0不同为1,当0001^0011或者0001^0010时都能得出另一个数,和乘法除法运算一样
- 例子:0010 ^ 0011 = 0001
与运算 :2 & 3 = 2
- 例子:0010 & 0011=0010
“与”运算中也是二进制位的运算,只要有一个是0那么结果就是0
- 例子:0010 & 0011=0010
java中的数据表示法
- 在java中数据前面加 0x表示16进制 0b表示二进制 0表示8进制
进制转换
任何进制转10进制都是 每一位 第某位的数据 乘 被转换的进制数 的 第某位索引次幂 相加
例子
八转10:
1 | 0120=1 * 8 ^ 2 + 2 * 8 ^ 1 + 0 * 8 ^ 0 = 80 |
10进制转任何进制都是 除 要转换的进制数 然后取余数,以此类推,最后得出的数据为:进制数从左到右 = 余数列表的从下到上
2、8互转与2、16互转方法:
- 2转8 = 3位一组转8
- 8转2 = 每一位转2
- 2转16 = 4位一组转16
- 16转2 = 每一位转2
二进制快速转换10进制方法:
- 二进制:
1 1 1 1 1 1 1 1
- 十进制:
128 64 32 16 8 4 2 1
二进制表示法:
符号位0为正,1为负
计算机二进制运算原理
计算机二进制运算都是用补码
例子:
+7 的原码是 0 0000111
ps:正数的、原码、反码、补码都一样
-7 的原码为 1 0000111
反码为 1 1111000 (符号位不变)
补码为 1 1111001(在反码的基础上加1)