进制转换
进制:带进位的计数方法。数运算几进制:逢几进一位。
十进制转其他进制,辗转相除法
把十进制数字不断除以指定进制数如2(每除一次记录好余数),除到直到商为0位置。1/2=0...1最后将所有余数倒序组合。
其他进制转十进制:8421编码
用这个位上的数字乘以这个位上的权重。再把每个位上的数字相加
十进制数字 1234=1*10^3+2*10^2+3*10^1+4*10^0
二进制数字转十进制:10100=1*2^4+1*2^2=16+4=20
九进制转十三进制,以10进制为媒介。
字节和位
字节(Byte)是以计算机中最小的存储单元。(右键,属性)
位(bit):二进制位,每个0或1就是一个位。
- 1Byte=8bit 一个字节等于八位。
- 1KB=1024Byte
- 1MB=1024KB
- 1GB=1024MB
- 1TB=1024GB
关键字
关键字53个,51个常用,2个保留关键字。关键字必须全部小写。main不是关键字
声明数据类型与占用字节数
声明整数的数据类型:
程序中每声明一个byte类型变量,占用1个字节内存。
程序中每声明一个int类型变量,占用4个字节内存。(默认int)
浮点类型数据(小数):
程序中每声明一个float类型变量,占用4个字节内存。
程序中每声明一个double类型变量,占用8个字节内存。(默认double)
字符类型:
声明单个字母,数字,汉字等符号的数据类型。字符类型占用字节数:
内码,由底层源码创建的类型变量,每个字符占用2个字节。
外码,由程序员自定义的char,每个字符占用字节数遵守编码规则。
布尔类型:
单独声明,每个变量占用4个字节内存。
声明在数组中,每个元素占用1个字节。
类型初始化:
long类型初始化
错误写法:Long num=12345678900//是按照int存的
正确写法:Long num=123L;(l或L,推荐L)给long类型初始化赋值,要加l或者L
整数类型初始化:(4种)
用4种进制对整数初始化
public static void main(String[] args) {
int n = 200;
int n1=11001000;
//二进制数字赋值:(数值由0~1组成,在前面加0b或者0B)
int n2=0b11001000;
System.out.println(n);//200
System.out.println(n1);//11001000
System.out.println(n2);//200
//以此类推,用其他进制定义整数200的方法
//八进制数字赋值(,数值由0~7组成,在前面加0)
int n3=0310;
//十六进制(前面加0x或者0X)
int n4=0xc8;
System.out.println(n3);//200
System.out.println(n4);//200
}
Integer类封装十进制整数转其他进制的方法:
public static void main(String[] args) {
int n = 200;
System.out.println(n + "的二进制是:" + Integer.toBinaryString(n));//200的二进制是:11001000
System.out.println(n + "的八进制是:" + Integer.toOctalString(n));//200的八进制是:310
System.out.println(n + "的十六进制是:" + Integer.toHexString(n));//200的十六进制是:c8
System.out.println(n + "的三进制是:" + Integer.toString(n, 3));//200的三进制是:21102
}
浮点数初始化注意:
初始化值由三部分组成,负数,整数,正数
float num05=12.34f(给float类型初始化要加f或者F)
字符类型初始化值:(4种初始化)
Java 语言中的字符类型(char)使用两个字节的 Unicode 编码表示
由单引号''表示,有且只有一个字符。可以是字母,数字,汉字,标点符号
- char c1='a'; //单个字符
- char c2=27801 //0-65535之间的数字都可以,对应Unicode码表
- char c3='\u0061' //65535对应FFFF。对不足4位的,需要补0占位。
char c1 = 200;
char c2 = '\u00c8';
System.out.println("字符1值为:"+c1);//字符1值为:È
System.out.println("字符2值为:"+c2);//字符2值为:È,c8转为10进制就是200
标识符:
在程序中给变量,方法,类,接口,包等起的名字。
标识符由26个大小写英文,0-9数字,美元$,下划线_,中文组成
数字不能作为标识符的开始,标识符不推荐中文。
变量初始化
变量在使用前,必须先赋值。
变量作用域就是变量所属的大括号
简单但是意料之外的代码结果:
byte var1=127; //范围-128~127,byte 类型是最小的整数类型
System.out.println(var1);//127 以为输出会是0111 1111,结果是个是十进制整数
float var5=9.00F;
System.out.println(var5);//9.0 输出里没有F很意外,而且以为是9.00
double var6=10.0;
System.out.println(var6);//10.0
//小数运算经常出现精度丢失
double x=100.8,y=20.6;
System.out.println("差:"+(x-y));//差:80.19999999999999
System.out.println(15/2);//7 我在想这玩意输出到底是7还是7.5,一下整蒙了
byte a = 127;
a+=1;//java编译器会对它进行特殊处理,把int强转为了byte 相当于 a=(byte)(a+1);
System.out.println(a);//-128 我以为直接报错了,没想到还真出来结果了,汗
byte b = 127;
//b是byte类型,但是1会自动提升表达式的类型为int
b=b+1;//以为不会报错,结果报错了,啪啪打脸啊