进制之间的转换
整数常量的表现形式:整数的表现形式主要是以不同的进制(二进制、八进制、十六进制)表现出来。
进制: 十进制(0~9) 、 星期(七进制 0~6)、 小时(12进制 0~11)、 24进制(0~23)
进制:用有限的数字符号代表所有的数值。
一、十进制与二进制之间的转换
电脑记录我们现实生活中的数据都是使用二进制进行记录的。
1.十进制转二进制的:
使用十进制的数据不断用短除法除以2,直到商为0为止。从下往上取余数就是对应的二进制。
10(十进制)-------->1010(二进制)
2.二进制转十进制:
使用二进制的每一位乘以2的n次方,n从0开始,每次递增1,然后把各部分的数据相加即可。
1110(二进制) ---------> 14(十进制)
二、八进制与十进制之间的转换
八进制的由来:
二进制的弊端: 二进制的书写太长了,不方便人类记忆。
二进制的特点: 由0~1组成。
解决方案:每三个二进制位就记录一个数字,由此产生了八进制。
1000(十进制)------> 001,111,101,000(二进制) = 1,7,5,0
一个八进制的数据就是相当于三个二进制位。
1.十进制转八进制
使用十进制的数据不断除以8,直到商为0为止。从下往上取余数就是对应的八进制。
45(十进制)------> 55 (八进制)
2.八进制转十进制
使用八进制的每一位乘以8的n次方,n从0开始,每次递增1,然后把各部分的数据相加即可。
23(八进制)------>19(十进制)
三、八进制与二进制之间的转换
**方式一:**先把二进制转成十进制,然后使用十进制转八进制的方法。
**方式二:**利用八进制与二进制之间的关系转换
三个二进制位就是一个八进制数据:
001,011(二进制)=1,3(八进制)
四、十进制与十六进制之间的转换
八进制数据的特点: 只有0~7这八个字符组成的。
十六进制的数据: 0~9,a(10),b(11),c(12),d(13), e(14),f(15);
四个二进制位就是一个十六进制的数据。
十六进制的数据是有0~9、a-f这几个字符组成的。
1.十进制转换成十六进制
使用十进制的数据不断除以16,直到商为0为止。从下往上取余数就是对应的十六进制。
38(十进制)---->26(十六进制)
2.十六进制转十进制
使用十六进制的每一位乘以16的n次方,n从0开始,每次递增1,然后把各部分的数据相加即可。
34(十六进制)----->52(十进制)
五、十六进制与二进制之间的转换:
四个二进制位就是一个十六进制的数据
1010101010111(二进制)------>1557(16进制)
00001,0101,0101,0111------>1,5,5,7
la(十六进制)------>1,1010(二进制)
全部总结:
进制在java中的表示方法:
class Demo{
public static void main(String[] args){
/*
System.out.println(12); //整数常量
System.out.println(3.14); //小数常量
System.out.println(false); //布尔常量
System.out.println('1'); //字符常量
System.out.println("hello world"); //字符串常量
如果一个数据没有加上任何的标识之前,默认就是十进制的数据。
*/
System.out.println(10);// 十进制
System.out.println(0b10); //二进制 , 如果一个数据要表示二进制,那么要在该数据的前面加上0b开头。
System.out.println(010); //八进制数据, 八进制的数据需要以0开头
System.out.println(0x10); //十六进制数据, 十六进制的数据需要以0x开头
}
}