一、java中的常量
1.定义:在java程序运行过程中其值不能发生改变的量
2.分类:
1、字面值常量
整数常量 表示所有的整数,包括负数 10 -8
小数常量 表示所有的小数 1.23 -3.14
布尔常量 true false
空常量 null
字符常量 表示由单引号括起来的单个字符 'a' '刘'
3.常见的单位转换和进制转换
常见的单位转换:
1byte = 8bit
1kb = 1024byte
1mb = 1024kb
1gb = 1024mb
1tb = 1024gb
1pb = 1024tb
整数10的二进制表现形式:00001010
java针对整数常量,提供4种表现形式:
二进制:由0,1构成,逢2进1,由0b开头
八进制:由0,1,2,3,4,5,6,7构成,逢8进1,由0开头
十进制:由0,1,2,3,4,5,6,7,8,9构成,逢10进1,默认就是10进制
十六进制:由0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f构成,逢16进1,由0x开头
进制之间的转换:
1、其它进制转10进制 规律:每一位上的系数乘上自身进制的幂次方之和
12345【10进制】 -> 【10进制】?12345
12345 = 10000 + 2000 + 300 +40 + 5
= 1*10^4 + 2*10^3 + 3*10^2 + 4*10^1 + 5*10^0
= 10000 + 2000 + 300 + 40 + 5
= 12345
2、10进制转其它进制 规律:除基取余,直到商为0,余数翻转
需求:把52分别表示成二进制,八进制,十六进制
3、10进制与2进制之间的快速转换:8421码
1 1 1 1 1 1 1 1
128 64 32 16 8 4 2 1
10110011 -> 128 + 32 + 16 + 2 + 1
4、其它进制到其它进制 举例:2进制转8进制
方案1:先转10进制,再转目标进制
10011-> 16 + 2 + 1 = 19
19/8= 2...3
2/8 = 0...2
方案2:先转2进制,若转8进制,每3位一组合,转10进制拼接;若转16进制,每4位一组合,转10进制拼接
举例:10011【2进制】 -> 【8进制】023
010-> 2 011-> 3
10011【2进制】 -> 【16进制】0x13
0001-> 1 0011-> 3
举例:-7 + 3 = -4
java针对2进制而言,负数和正数的表现形式不一样的,并且在计算机底层计算过程中,数据都是采用补码进行计算的
要想知道一个数值的补码,就必须先知道该数值的反码,要想知道一个数值的反码,就必须先知道该数值的原码。
原码:
正数的原码与二进制值保持一致,最高位为0;
负数的原码数值位与正数一致,最高位是1。
举例:
符号位 数值位
-7的原码:1 0000111
3的原码: 0 0000011
反码:
正数的反码与原码保持一致;
负数的反码,再原码的基础上,符号位不变,数值位按位取反
举例:
符号位 数值位
-7的反码:1 1111000
3的反码: 0 0000011
补码:
正数的补码与原码保持一致;
负数的补码,再反码的基础之上,末位+1
举例:
符号位 数值位
-7的补码:1 1111001
3的补码: 0 0000011
11111001
+
00000011
--------------
补码: 11111100
最终计算机是最终原码转10进制之后的结果
符号位 数值位
补码: 1 1111100
反码: 1 1111011
原码: 1 0000100
-------------------------
-4
四、使用和测试
public class ConstantDemo1 {
public static void main(String[] args) {
// System.out.println(10);
// System.out.println(3.14);
// System.out.println(true);
// System.out.println('a'); // 字符
// System.out.println("qwe"); // 字符串
//需求:输出不同进制下的100
//java控制台中默认输出的整数结果都是转10进制之后的结果
System.out.println(0b100); // 1*2^2 = 4
System.out.println(0100); // 1*8^2 = 64
System.out.println(100); // 100
System.out.println(0x100); // 1*16^2 = 256
}
}
二、变量
1.定义:指的是在Java运行过程中,其值可以发生改变的量
2.格式:数据类型 变量名 = 初始化值;
3.变量的基本数据类型
数据类型:
基本数据类型:
整数类型: 所占的字节数 可表示的范围
byte 1 -2^7 ~ 2^7-1
short 2 -2^15 ~ 2^15-1
int 4 -2^32 ~ 2^32-1
long 8 -2^63 ~ 2^63-1
小数类型:
float 4
double 8
布尔类型:
boolean 1
字符类型:
char 根据具体的编码来定,不同的编码下,java中一个字符所占的字节数是不同的
引用数据类型:【后面会说】
4.使用规则
使用变量的注意事项:
1、变量要进行初始化赋值,才可以进行使用
2、在同一作用域下,变量名不能重复,可以大小写不一样,严格区分大小写的。
3、java中整数默认是int类型,要想定义一个long类型的变量,需要在值的末尾加上L或者l,推荐使用L
4、java中小数默认是double类型,要想定义一个float类型的变量,需要在值的末尾加上F或者f,推荐使用F
5.测试使用
public class DataTypeDemo1 {
public static void main(String[] args) {
//数据类型 变量名 = 初始化值;
//定义一个byte类型的变量
byte b1 = 100;
// b1 = 120;
// byte b1;
// byte B1 = 110;
System.out.println(b1); // 直接打印这个变量,实际上打印的是该变量存储的值
//定义一个short类型的变量
short s1 = 200;
System.out.println(s1);
//定义一个int类型的变量
int i1 = 300;
System.out.println(i1);
// int i2 = 30000000000;
long i2 = 30000000000L;
System.out.println(i2);
//定义一个float类型的变量
float f1 = 12.34F;
System.out.println(f1);
//定义一个double类型的变量
double d1 = 33.45;
System.out.println(d1);
//定义一个布尔类型的变量
boolean b2 = true;
System.out.println(b2);
//创建一个字符变量
char c1 = 'a';
System.out.println(c1);
}
}
标签:10,java,进制,System,原码,println,out,变量,常量
From: https://www.cnblogs.com/ndmtzwdx/p/18475482