二进制转换成其他进制数:
-
二进制转换成八进制数:
(1)简单的办法是将二进制数从右到左三个一组分开,不够就在最左面补零,然后转换成八进制数;
如:
二进制数:1101010;
三个一组分开: 001 101 010
然后转换成八进制为: 1 5 2
则:二进制的1101010转换成八进制数就是152; -
二进制数转换成10进制数:
逆推法:
如:61 (10)-----》111101(2)
128 64 32 16 8 4 2 1
61 = 1 1 1 1 0 1
所以十进制的61转换成二进制的数字就是111101
基数法:
项数 * 基数 ^ 序数 累加
如 :101011(2)—》43(10)
12^5 + 02^4 + 12^3 + 02^2 + 12^1 +12^0 =43
序数:543210(就是下标,从零开始读的);
基数:就是几进制; -
二进制数转换成16进制数:
2—》16
从右向左每 4 位为一组,计算每一组的十六进制数。
1 0011 1101—13d
十进制转换为其他进制数:
-
十进制数转换成二进制数:
小除法:除以2(需要转换的进制)求余,结果从下向上读取;
也可以用小除法将十进制转换成其他进制,除以需要转换成为的进制数,求余,结果从下往上读;
2 | 61 1 2 |30 0 2 |15 1 2 |7 1 2 |3 1 2 |1 1
逆推法:
如:6 (10)-----》111101(2)
128 64 32 16 8 4 2 1
61 = 1 1 1 1 0 1
所以十进制的61转换成二进制的数字就是111101
注意:
二进制前加0b;
八进制前加0;
十六进制前加0x;
其他进制转换成十进制:
项数 * 基数 ^ 序数 累加
如 :101011(2)---》43(10)
1*2^5 + 0*2^4 + 1*2^3 + 0*2^2 + 1*2^1 +1*2^0 =43
序数:543210(就是下标,从零开始读的);
基数:就是几进制;
如:
7进制----13进制:将7进制数转10进制数,再将10进制数转13进制数
将7进制数转10进制数:
7 * 7^0 =7 ;
7(7)----》7(10)
将10进制数转13进制数:
小除法:
13 | 7 6
0
7 (10)----》 6(13)
For example:
public class DemoTest {
public static void main(String[] args) {
int i= 196;
// 输出二进制
System.out.println(Integer.toBinaryString(i));
// 输出为8进制
System.out.println(Integer.toOctalString(i));
// 输出16进制
System.out.println(Integer.toHexString(i));
// 以0(零)开头的是8进制(以0b开头的是2进制)
i = 072;
// 输出时默认转换成十进制
System.out.println(i);
// 以0x或0X(零X)开头的为16进制
i = 0xf4;
// 输出时默认转换成十进制
System.out.println(i);
// 输出16进制
System.out.println(Integer.toString(i));
}
}