常量:
java中固定不变的值
整数常量,小数常量,字符常量,字符串常量,布尔常量null空常量
进制以及进制的转换:
概念:
进制是一种规定好的进位方法,对于任何一种进制,就表示再运算时逢X进一。例如二进制就是逢二进一,八进制就是逢八进一,十进制就是逢十进一,十六进制就是逢十六进一。
进制的表示方法:
二进制一般由0b开头,0~1;
八进制一般由0开头,0~7;
十进制整数的默认类型是十进制,0~9组成;
十六进制一般由0x表示,0~9,A,B,C,D,E,F;
进制的转换:
十进制转换到其他进制:除基数(其他的进制)取余,直到商为0,余数采用倒叙的排列法。
其他进制转换到十进制:采用倒叙的排列,用系数*基础的权次幂即可。
任意进制之间的来回转换:可以借助十进制为桥梁进行转换。
十进制二进制之间的快速转换:
8421码是bcd代码中最常用的一种,如果将十进制转换为二进制,依次从左到右相加等于十进制的值,那么对应的二进制就写1,没有的则写0;
如果将二进制转换为十进制,依次从右到左找到对应十进制的值进行相加。
有符号位的数值表示法(扩展)
注意:计算机的运算都是按照补码进行的
原码:二进制的正常表示法,最高位“0”代表正数,“1”代表负数;
反码:正数的反码和原码一致,负数是对原码进行逐一取反,但符号位除外;
补码:正数的补码和原码一致,负数的补码是对反码的最后一位+1;
变量:
变量的三要素: 数据类型 变量名称 = 初始化值;
基本数据类型:(四类八种)
整数:
byte | 字节类型 | 1个字节 | 范围-128-127 |
short | 短整型 | 2个字节 | |
int | 整数默认类型 | 4个字节 | |
long | 长整型 | 8个字节 | (定义long类型时,需要在初始化变量末尾加上L) |
小数:
float | 单精度 | 4个字节 | 定义float类型时,需要再初始化变量末尾加上F |
double | 双精度 | 8个字节 |
字符:
char 2个字节 书写时需要用''引起来
布尔类型:
boolean 1个字节 不参与运算 只有true/false
类型自动提升规则:所有的byte,short,char型的值将被提升为int型(在参与运算时)
运算符:
概念:
对常量和变量操作运算的符号称为运算符
算数运算符 | + , - ,* ,/ ,% ,++ ,-- |
赋值运算符 | += ,-= ,/= ,%=, = |
逻辑运算符 | &(与) , | (或), ^ (异或), !(非) , &&(与短路) , ||(或短路) |
三目运算符 | 布尔表达式 ? 结果1 : 结果2 |
关系运算符 | > , < ,<= , >= , == , != |
位运算符 | >>(右移),<<(左移),>>>(无符号右移),&(与运算) , |(或运算), ^(异或运算),~(非) |
算数运算符:
++或者--在数值前,表示先自增,在运算
++或者--在数值后,表示先运算,在自增
赋值运算符:
把等号左边的值和右边的值运算后在赋值给等号左边。
short s = 1;
s += 1 ;
等价于:short s = (short)1 + 1 ;(不受默认是int类型的影响)
逻辑运算符:
实际编码当中一般使用&&,||,和 !;
&和&&的区别:
& 无论&左边的值是true或者false时,&右边的值都会进行运算,反之。
&& 当&&左边的值为false时,&&右边的值不会进行运算。
|和||的区别:
| 无论|左边的值时true或者false时,|右边的值都会进行运算。
|| 当||左边的值为true时,||右边的值不会进行运算,反之。
^ 当^左边为true,右边为flase时。结果为true。
位运算符:
>> 右移
格式:值 >> 位移的次数
右移 :右移的时候,如果最高符号位为0,左边补齐0;最高符号位如果为1,左边补1,右边多的比特位丢弃掉!
右移一位相当于除2,右移n位相当于除以2的n次方。
<< 左移
格式:值 << 位移的次数
左移 :计算出来这个数据补码---左移动,右边补齐0,最高符号位丢弃掉
在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。
& 与运算 两个进制操作数对应位同为1,结果为1,否则为0
| 或运算 两个进制操作数对应位只要有一个为1,结果为1。其余则为0
^异或运算 两个进制操作数对应位相同,结果为1,不同为0(一个操作数被另一个操作数异或两次,得到的值时它本身)
~取非 将每位数进行取反。
注意:机器的运算是按照补码进行的