十进制转二进制:短除法
例:十进制57转二进制
除数 | 商 | 余数 |
---|---|---|
2/57 | 28 | 1 |
2/28 | 14 | 0 |
2/14 | 7 | 0 |
2/7 | 3 | 1 |
2/3 | 1 | 1 |
2/1 | 0 | 1 |
将余数从下往上数,答案:111001。十进制转八进制:短除8.
位运算
- 位运算的应用:
- 按位与&:两位全为1,结果才为1
1.清零。将一个单元清零(使其各位均为0),只需与一个各位均为0的数值相与,结果为0.
2.取一个数中指定位。设要取11010110的低4位,则与00001111相与即可得到. - 按位或|:只要有一个为1,结果就为1
用于对一个数中的指定位,置1。设要将11010110的低4位都变为1,则与00001111相或即可得到. - 异或运算^:两个相应位的值不同,结果才为1,否则为0
1.使特定位翻转。设要将11010110的低4位翻转,则与00001111异或即可得到.
2.与0相异或,保留原值.
3.交换两个变量的值。设交换A与B的值,则A=A^B;B=A^B;A=A^B; 即可得到. - 取反运算~:将二进制数按位取反,即0变1,1变0
- 左移运算<<:将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)
- 右移运算>>:将一个运算对象的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。操作数每右移一位,相当于该数除以2
- 无符号右移运算>>>:各个位向右移指定的位数,右移后左边空出来的位用0填充,移出右边的位被丢弃
- 按位与&:两位全为1,结果才为1
- 负数以其正值的补码(反码+1)形式表示
java内置的进制转换
字符串和字节互转