1:什么是二进制?
所谓二进制,也就是计算机运算时用的一种算法。二进制只有一和零组成。比方说吧,你上一年级时一定听说过“进位筒”&“数位筒”吧!十进制是个位上满十根小棒就捆成一捆,放进十位筒,十位筒满十捆就捆成一大捆,放进百位筒……二进制也是一样的道理,个位筒上满2根就向十位进一,十位上满两根就向百位进一,百位上满两根……二进制是世界上第一台计算机上用的算法,最古老的计算机里有一个个灯泡,当运算的时候,比如要表达“一”,第一个灯泡会亮起来。要表达“二”,则第一个灯泡熄灭,第二个灯泡就会亮起来。随着科技的发展,二进制已经被“八进制”、“十六进制”取代了。
2:
二进制的运算:
①:与运算:& :
两位全为1,结果才为1;
eg:51&5 即0011 0011 &0000 0101=0000 0001
特殊用法:
清零:如果想将一个单元清零,即将其全部二进制为0,只需与一个二进制位为0的数值相与;
取一个数值中的指定位:找一个数,对应X要取的位,该数的对应位为1,其余为零,次数与X与运算,即可得到X 中指定位;
Eg:设X=10101110,取X的低四位,用X&0000 1111=0000 1110
②:按位或:|
只要一个位=为1,结果就为1
eg:51|5 即0011 0011 | 0000 0101=0011 0111
特殊用法:用来对某些数置为1;
eg:将X=10100000的低四位置1,用X|0000 1111=1010 1111
③:异或运算: ^
不同为1,相同为0;1^1=0;0^0=0;1^0=1;0^1=1
特殊用法:使特定位翻转;
与0异或运算,保留原值;
两个变量交换值的方法;
5^3=6 即101^011=110
5^6=3 即101^110=011
6^3=5 即110^011=101
④:取反运算:~
0->1;1->0;
⑤左移运算:<<
将一个运算对象的各二进制位全部左移动若干位,左边的进制位丢弃,右边补0;
eg:2<<1=4 即 10->100
⑥右移运算:>>
将一个运算对象的各二进制位全部右移动若干位,右边的进制位丢弃,左边补0;
eg:4>>1 即100>10
⑦无符号右移运算 >>>
各个位向右移动指定位数,右移后左边空出的用0来填充,右边丢弃
eg:-4>>>2
1111011->0011110
⑧ 反码:原码取反
补码: 反码+1
eg:原码:00001110 反码:11110001 补码:11110010
负数就是用补码来表示的,所以知道补码可以求助一个负数,步骤如下:
1:先减一,2:取反,3:取负
3:进制在JDK中的转换
十进制转二进制方法:
toBinaryString(int );
十进制转八进制方法:
toOctalString(int);
十进制转十六进制方法:
toHxeString
其他进制转十进制方法:
Integer.parseInt(“对应进制数”,int (对应目标进制));
二进制转十进制方法:
Integer.parseInt(“100101”,2);
4:java中的进制
小面加个视频,供参考点击看看视频