1.概念
在代码运行过程中值不发生改变的量
2.分类
字面值常量
字符串常量 "100" " asasfaf"
字符常量 'a'
整数常量 100 1000
小数常量 3.14 6.5
布尔常量 true,false
空常量 null
自定义常量
3.整数的不同表现正式
二进制---由0和1组成 以0b开头 jdk1.7提出的
八进制---由0-7组成 以0开头
十进制---由0-9组成 默认整数
十六进制---由0-9,a-f(英文字母不区分大小写) 以0x开头
进制---进位的一种形式 逢X进1
所有的数据都是底层计算机硬件的状态来表示的
用上述的8中状态去表示数据,为了提高表示数据的效率就用1,0去表示硬件的状态---由0和1表示的数据称之为二进制数据.
从右往在每3位一组,不够就补零,算出每组十进制的值.
从右往左,每四位一组不够就补零,算出每组的十进制的值
进制越大,表现形式就越简单
4.其他进制转换成十进制
二进制 110 十进制 6
=1*2`2+1*2`1+0*2`0=6
十六进制 522 十进制1314
=5*16`2+2*16`1+2*16`0=1314
基数:X进制就是X
位:每一位上的数
权:从右往左由0开始编号
规律:位乘以基数的全次幂的和
5.十进制转换其他进制
十进制 12 二进制 1100
十进制 13 八进制 15
规律:除基取余,直至商为0,余数取反
6.任意进制之间的转换
x进制先转出成十进制,十进制在转换成y进制
二进制 10 八进制 2
(2)拆分组合
八进制 12 二进制 1010
小数二进制的表现形式
大部分小数的二进制数据是无限位数
7.有符号的数
java所有的数据在底层都是以二进制数据的补码形式来表示
原码/反码/补码
表示5和-5
原码 符号位 数值为
5 0 0000101
-5 1 0000101
符号位0用来表示正数
反码 符号位 数值位
5 0 0000101
-5 1 1111010
正数的原码和反码一致,负数的反码是在原码的基础上符号位不变,数值位取反
补码 符号位 数值位
5 0 0000101
-5 1 1111011
正数原反补一致,负数是在反码的基础上加1