Java基础知识2
一定要学会自主学习的能力,一定要准确定位问题,自住分析问题,自主解决问题。
任意进制到十进制点到转换,十进制到任意进制的转换,二进制和十进制的转换(8421码表)
每一位的数称之为系数,几进制称之为基数(位权展开法)
除积(进制数)取余直到商为零,余数反转就是几进制
用的还是位权展开法,只是画成表了。(直接用就行了)1位的数字相加就行了,0位的东西不用管。用十进制数字减去一个表里的数,能减过就是一,其余位都是0。
Java中各个进制数的表示方法
二进制:0b开头
八进制:0开头
十进制:默认十进制
十六进制:0x开头
原码补码反码
计算机底层运算时采用补码运算。
有符号表示法:原码,反码,补码。
原码:一个数的二进制表现形式,数据的最高位时符号位,其余的是数值为。
正数的三个码都是一样的。
符号位0代表正数1代表负数。
负数的反码:符号位不变,其余位1变0 0变1。
负数的补码:在其反码末位+1
例题1:A:已知某数X的原码为0B10110100,试求X的补码和反码。B:已知某数X的补码0B11101110,试求其原码。
解:a:原码:10110100反码:11001011补码:11001100
b:补码:11101110反码:11101101原码:10010010
变量
在程序运行过程当中,值发生变化的量叫变量(在范围之内变化,有数据类型的规定,在Java编译中变量定义格式:变量名=值,数据类型就是变量的范围),变量其实就是在内存中开辟了一块空间,用来存储数据。开多大空间合适,以及空间存储什么样类型的数据,可以用数据类型来声明。变量在Java中命名一般首字母小写。定义long类型的数据数据后加L表示这是一个long类型数据。定义float后必须要加F。因为正数默认是int,小数默认是double类型。char类型要用‘ ’括起来之中中能加一个字符。注意数据不能超出数据类型范围。
数据类型
1.引用数据类型(以后讲)
2.基本数据类型:四类八种
(1): 数值型
整数型 字节数 范围
byte 1(8bit) -128 ~ 127
short 2(16bit) -2^15 ~ 2^15 - 1
int 4(32bit) -2^31 ~ 2^31 - 1
long 8(64bit) -2^63 ~ 2^63 - 1
浮点数
float 4(32bit) -3.40310^38 ~ 3.40310^38
double 8(64bit) -1.79810^308 ~ 1.79810^308
(2): 字符型 char 2(16bit) 0 ~ 2^16 - 1 = 65535
(3): 布尔型 boolean 1
整数默认是int类型的 , 浮点数默认是 double类型的
变量定义的注意事项
变量在使用之前必须赋值。重新赋值会覆盖之前的值(可以赋两次值,第二次覆盖第一次)。赋值后要加;表示语句结束。
同一个作用域(一对大括号中是一个作用域)不能定义量个同名变量。(不能int两个b)
自动类型提升
byte short char,在参加数学运算时,会自动提升为int型。如果有long float double参加运算则会相应提升为long float double型。布尔类型不参加数学运算。byte short char之间不参与自动转换。
强制类型转换
强制将一个数据转换成想要的数据,可能会发生精度损失的问题(此过程不会报错),不建议强制转换。强制类型转换有可能会自动丢弃字节。
常量优化机制
他会优先算出结果,看有没有在这个数据类型范围内,如果在就不报错,如果不在就报错。
char可以输出汉字
char、gdk、ansi编码中一个汉字占两个字节。
utf8编码中一个汉字占两个字节
char如何参与运算
字符参与运算会对照ASCII码表,将十进制拿出来运算。键盘上的键都是字符,都有对应的十进制数。a 97, A 65, 0 48
+的含义
加好可以当做一个数学运算符来用,起相加的作用。还可以当连接符来使用。当加号的运算两端任意一端是一个字符串,加号就会起连接符的作用,会将两端内容连接起来形成一个新字符串。括号里的加号按顺序去运行。
运算符
对变量或常量进行运算的符号。
运算符分类:算数,赋值,比较,逻辑,三元,位 运算符。
++:自身增1。--:自减1。单独使用++--在前在后都一样。混合使用,++在前先运算后使用,++在后先使用后运算。
赋值运算符:= += -= *= /= %=(后五个会自动判断运算完的结果在不在范围内,如果不在会帮程序强制类型转换)
关系运算符:< > <= >= == !=比较运算符的运算结果是布尔类型(结果只有两种)。一定要区分=和==。
逻辑运算符:& ,|,!,^,&&(只要左端位FALSE就不运算右边),||(只要左端是TRUE就不用运算右边,左端为FALSE,右端还是要运算的)。
三元运算符的语法:表达式?结果1:结果2。表达式的值是TRUE返回结果1,FALSE返回结果2.。比如:
int a=10;
int b=20;
int c=100;
int max=a>b?a:b;
int maxmax=max>c?max:c
以上程序就可得出最大值。(三元表达式不建议嵌套,嵌套太深会导致混乱,代码阅读性不好)。