0
点赞
收藏
分享

微信扫一扫

4、进制


1 十进制转换二进制
eg:57 转为二进制
1.1 方法一: 除2
57/2 = 28....1
28/2 = 14....0
14/2 = 7....0
7/2 = 3....1
3/2 = 1....1
1/2 = 0....1 (商为0停止)
然后反过来:111001
1.2 方法二:找最大的2的次方
000000
最接近57最大的2的次方是2的(6-1)次方32,那第6个位置是1(100000), 57 - 32 = 25
最接近25最大的2的次方是2的(5-1)次方16,那第5个位置是1(110000),25 - 16 = 9
最接近9最大的2的次方是2的(4-1)次方8,那第4个位置是1(111000),9-8 = 1
最接近1最大的2的次方是2的(1-1)次方1,那第1个位置的是1(111001),1-1 = 0(结束)
所以是111001

2 二进制转换十进制
111001:2^(6-1) + 2^(5-1) +2^(4-1) + 2(1-1) = 32+16+8+1 = 57

3 八进制:适用于12位于36位计算机操作系统,标志的开头用0表示,用0-7的数字表示

4 十六进制:用0-9,ABCDEF表示,标志的开头用0x表示

十进制 二进制 八进制 十六进制

0 0000 0 0
1 0001 1 1
2 0010 2 2
3 0011 3 3
4 0100 4 4
5 0101 5 5
6 0110 6 6
7 0111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F


5 位运算
运算符 运算 实例
& 与运算 6&3=2
| 或运算 6|3=7
^ 异或运算 6^3=5
~ 反码 ~6=-7
<< 左移 3<<2=12 3*2*2=12
>> 右移 3>>1 = 1 3/2 =1
<<< 无符号移 3>>>1 = 1 3/2 =1

5.1 & :两个都是1,才是1否则为0 0010 &1111 = 0010
5.1.1 作用1,清零:如果想让一个单元为0,即使其全部二进制为0,只要与一个各位都为0的数值相与,结果为0
5.1.2 作用2,取一个数中指定位:设X=10101110,取X的第4位,用X & 0000 1111 = 0000 1110即可得到
5.2 | :一个是1 就是1 1001 & 0110 = 1111
5.2.1 作用1,将某位变为1 :10001 0001 第2个变为1 ,10001 0001 | 0000 0010 = 10001 0011
5.3 ^ :两个相应位为“异”(值不同),则该位置为1,否则为0 :0^0= 0 0^1=1 1^0=1 1^1=0
5.3.1:用途1:使特定位翻转找一个数,对应X要反转的各位,该数对应位为1,其余为0,此数与X对应位异或即可。
例如:X=10101110,使X第4位反转,用X^0000 1111 = 10100001
....


6 jdk中进制转换
//十进制转换其它进制
Integer.toBinaryString(122); //2进制转换,1111010
Integer.toOctalString(122); //8进制转换,172
Integer.toHexString(122); //16进制转换,7a

//其他进制转换十进制
Integer.parseInt("1111010",2) //122
Integer.parseInt("172",8) //122
Integer.parseInt("7a",16) //122

举报

相关推荐

0 条评论