java语法中的常量,简单的给大家做以下总结:
- 常量的概念
- 常量的划分
- 常量的表现形式
- 进制间的相互转换
- 有符号数字表示法
1.常量的概念:
在Java程序执行的过程中其值不可以发生改变的量
(在Java中,常量的命名规范为:所有字母都大写,多个单子中间用_隔开! eg:PI SECRT_KEY)
2.常量的划分:
①.字面值常量(const):
⑴.字符串常量:用" "引起来的常量 eg:"Hello"
⑵.字符常量:用' '引起来的常量(只能有一个字符) eg: '4' or 'a'
⑶.整数常量:整数 eg: 2 3 4
⑷.小数常量:小数 eg: 2.4 6.7 8.03
⑸.布尔常量:较为特有 ,true/false
⑹.空常量:null(不能直接打印)
②.自定义常量(用final修饰的变量):
eg: final int a =100;
(注意:当变量a用final修饰后,就变成了一个常量,a的值为100)
3.常量的表现形式:
在java中对整数常量提供了4中常见表现形式:(即二进制/八进制/十进制/十六进制)
概述:进制就是进位制,是人们规定的一种进位方法,简单的来说,几进制就是逢几进几
二进制:由0和1组成,做区分的是时候是:0b 1 10 11 100.... (默认值为0b)
八进制:有1到7组成,做区分的时候是:0 1 2 3 4 5 6 7 10 11 12.....(默认值为0)
十进制:由1到9组成,0 1 2 3 4 5 6 7 8 9 10 11 12....
十六进制,有1到9,a到f组成 ,0x 1 2 3 4 5 6 7 8 9 a b ...f f1....(默认值为0x)
4.进制间的相互转换:
⑴.2进制8进制16进制 转10进制
方法:各个位上的数乘以对应进制的位数减1次方,做累加
eg:0b1110=0*2^0+1*2^1+1*2^2+1*2^3=0+2+4+8=14(8进制,16进制同理)
⑵.10进制 转2进制8进制16进制
方法:转几进制就除以几直到商为0,把余数反转
eg: 52转2进制(52%2=0 26%2=0 13%2=1 6%2=0 3%2=1 1%2=1 结果为:52=0b110100)(10进制转8进制/16进制同理)
这里我给大家提供一种快速的思路,可以用8421法,即二进制中,每一位1所对应的最大值:用它们对应的值做相加计算
(eg:0b1=1 0b11=2+1=3 0b111=4+2+1=7 0b1111=8+4+2+1=15)
⑶.2进制 转8进制16进制
快速方法: 把2进制 按3位一组 4位一组 找对应值 做拼接(如果首位不够3位或4位,在前面补0即可)
(eg:0b111 101 010 111=07527 eg:1010 1010 1111 0101 =0xaaf5)
⑷.8进制16进制 转2进制
快速方法: 把8进制16进制的每一位 拆成3位一组 4位一组 做拼接
(eg:076543=0b111 110 101 100 011 eg:0xfba1=0b1111 1011 1010 0001)
5.有符号数字表示法:
- 带有符号的数字叫做有符号数,二进制中负数的表现形式:最高位不是运算位,而是符号位,
- 正数的表示最高位为"0",负数的表示最高位为"1"
- 计算机存储的数据均为二进制的补码,所有的数据运算都是用补码进行的,在计算机内,有符号数有三种表示方式:原码,反码,补码
⑴.原码:就是二进制的定点表示法
(eg:7和-7的原码 7:0000 0111 -7:1000 0111)
⑵.反码:正数的反码与其原码相同,负数的反码就是其原码逐位取反,但是符号位除外
(eg:7和-7的反码: 7:0000 0111 -7:1111 1000)
⑶.补码:正数的补码与其原码相同,负数的补码就是在其反码的末尾加1
(eg:7和-7的补码: 7:0000 0111 -7:1111 1001)
总结不易,看完的小伙伴如果觉得有帮助,请给我点个赞!么么哒!