不懂Java常量?看懂这一篇就够了!

java语法中的常量,简单的给大家做以下总结:

  1. 常量的概念
  2. 常量的划分
  3. 常量的表现形式
  4. 进制间的相互转换
  5. 有符号数字表示法

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)

总结不易,看完的小伙伴如果觉得有帮助,请给我点个赞!么么哒!

猜你喜欢

转载自blog.csdn.net/weixin_44760803/article/details/106968470