可以通过 带转化数除以二取余 例如:6 是十进制把它转化成二进制 5/2余1 2/2余0 最后 1/2 余 1 所以5的二进制就是 101
注意:写余数的时候一定要从右往左写(也就是第一次处于2取余的数字放在最右边)
例如 11的二进制 11/2 余1 5/2余1 2/2余0 1/2 余1 所以11的二进制是 1011
55的二进制 55/2 余1 22/2余0 11/2余 1 5/2余1 2/2余0 1/2 余1 所以55的二进制是 10111
(在jdk的API中Integer类中的toBinaryString方法可以把十进制的数字转化成二进制)
例如: System.out.println(Integer.toBinaryString(5));将会输出101
2怎样把二进制转化成十进制呢?
把二进制转化成十进制更方便还用说上面的5 二进制作例子吧前面我们知道了5的二进制是101那么怎么把101转化成十进制的5呢?
1 0 1 从右向左 第一位是 2的零次幂 第二位是 2的一次幂 第三位是2的二次幂 以此类推 那么
101 的十进 就是 1*2的零次幂 等于1 +0*2的二次幂+1*2的二次幂 最终 是 5
110001 的十进制 是 1 *2的0次幂+0*2的1次幂+0*2的2次幂+0*2的3次幂+1*2的4次幂+1*2的5次幂 最终加起来是 49
(小技巧)二进制数从右向左由第一位开始是 1 第二位是2 第三位是 4 以此类推 。。。。。 8 16 32 64 128 等
那么 01010101的十进制就是 从右开始 1*1+0*2+1*4+0*8+1*16+0*32+1*64+0*128 =85
3.把二进制转化成八进制
任何数除于8余数都不会大于8 因此我们可以把二进制分成三个数一组(从右向左)例如 10001011101 可以这样划分 010 001 011 101 (左边不够三位我们可以补0)
这样就好计算了 三个看成一个整体从右向左分别是1 2 4 这样就二进制数就010 001 011 101 变成八进制就是 2 1 3 5 八进制前面都是用0来表示 02135 就是一个八进制的数 。
例: 010 011 100 101 001 变成八进制 是 2 3 4 5 1 (用八进制表示就是023451)
4.把二进制 转化成十六进制
十六进制的表示是用0x(0-9 A-F)任何数除于16余数都会小于16 所也可以把 二进制的数字四个分成一组 然后利用同上面的方法 8 4 2 1来计算
例如:10011001100转化成十六进制 先分组(不齐的用0补) 0100 1100 1100 然后就可以计算了 右边第一组为 12 第二组为12 第三组为4 那么表示成十六进制就是0x4CC
(把十进制转化成八进制可以先转化成二进制也可以用jdk的API中Integer类中的toOctalString方法可以把十进制的数字转化成八进制)
(把十进制转化成十六进制同样可以先转化成二进制再转换成十六进制也可以用jdk的API中Integer类中的toHexString方法可以把十进制的数字转化成十六进制)
5.负数的二进制表现形式
负数的表现形式就是二进制的表现形式取反然后加1
例如 -7
(7)二进制表现为 00000000 00000000 00000000 00000111
取反就是把0变成1 111111111 111111111 11111111 11111000
然后加1 变成 111111111 111111111 11111111 11111001
所以-7 表现成二进制就是 111111111 111111111 11111111 11111001