一  进制及其转换

进制介绍

二进制:是计算技术中广泛采用的一种数制,由德国数理哲学大师莱布尼茨于1679年发明。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”。

十进制:人类社会常用数值,基数为十,规则为逢十进一。

八进制和十六进制:为了更好的表示二进制(缩短二进制长度)

转换:

二进制转十进制采用“权相加法”。

Java 二进制写法 java 二进制数_运算符

十进制整数转换为二进制整数采用"除2取余,逆序排列"法。

Java 二进制写法 java 二进制数_java_02

 

计算机数据存储单位:

位 bit:

最小值 0

最大值  1

表示的数的范围 0-1(21-1)

字节 byte:8bit

最小值 00000000

最大值 11111111

表示的数的范围:  

无符号数:0-255(28-1)     256个数

有符号数:-128(-27)--127(27-1)  还是256个数

字符 :16bit

最小值 0000 0000 0000 0000

最大值 1111  1111 1111 1111

表示的数的范围:

无符号数 0-65535(216-1)   65536个数

有符号数 -32768(-215)-----32767(215-1)  还是65536个数

KB、MB、GB、TB

1KB = 1024Byte ≈103Byte

1MB = 1024KB ≈ 106Byte

1GB = 1024MB ≈ 109Byte

1TB = 1024GB ≈ 1012Byte


二  八大基本数据类型

整数类型:

 整型数据类型

类型

占用存储空间

表数范围

byte

1字节

-27 ~ 27-1(-128~127)

short

2字节

-215 ~ 215-1 (-32768~32767)

int

4字节

-231 ~ 231-1 (-2147483648~2147483647) 约21亿

long

8字节

-263 ~ 263-1

 Java 语言整型常量的四种表示形式

  1. 十进制整数,如:99, -500, 0
  2. 八进制整数,要求以 0 开头,如:015
  3. 十六进制数,要求 0x 或 0X 开头,如:0x15
  4. 二进制数,要求0b或0B开头,如:0b01110011

浮点数据类型

浮点型数据类型

类型

占用存储空间

表数范围

float

4字节

-3.403E38~3.403E38

double

8字节

-1.798E308~1.798E308

float类型又被称作单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足需求。而double表示这种类型的数值精度约是float类型的两倍,又被称作双精度类型,绝大部分应用程序都采用double类型

float类型的数值有一个后缀F或者f ,没有后缀F/f的浮点数值默认为double类型。也可以在浮点数值后添加后缀D或者d, 以明确其为double类型。

float  f = 3.14F;//float类型赋值时需要添加后缀F/f

double d1= 3.14;

double d2 = 3.14D;

注意:浮点类型float,double的数据不适合在不容许舍入误差的金融计算领域。如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类

字符数据类型

char 类型用来表示在Unicode编码表中的字符。Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有65536个字符。

字符型演示

char eChar = 'a';

char cChar ='中';

char cChar ='β';

 

转义字符

转义符

含义

Unicode值

\b

退格(backspace)

\u0008

\n

换行

\u000a

\r

回车

\u000d

\t

制表符(tab)

\u0009

\“

双引号

\u0022

\‘

单引号

\u0027

\\

反斜杠

\u005c

Char类型在内存中存储的其实就是该字符的Unicode编码,这是一个数字。其实是也可以这么赋值的。

char c2 = 'a';

char c2 = 97;

注意事项

 “a”是字符串String,不是字符char。String可以是0到多个字符组成的字符串。

布尔数据类型

boolean类型有两个常量值,true和false,不可以使用 0 或非 0 的整数替代 true 和 false ,这点和C语言不同。boolean 类型用来判断逻辑条件,一般用于程序流程控制。

 

三  运算符

算术运算符

二元运算符

+,-,*,/,%

一元运算符

++,--

赋值运算符

=

扩展运算符

+=,-=,*=,/=

关系运算符

>,<,>=,<=,==,!=  instanceof

逻辑运算符

&&,||,!,^

条件运算符

? :

字符串连接符

+

相关概念辨析

  • + 运算符  操作符  Operator
  • 5+6  表达式  expression
  • 5  6  操作数  Operand
  • int m =5+6; 语句  Sentence

.算术运算符

算术运算符中+,-,*,/,%属于二元运算符,二元运算符指的是需要两个操作数才能完成运算的运算符。其中的%是取模运算符,就是我们常说的求余数操作。

二元运算符的运算规则:

整数运算:

  1. 如果两个操作数有一个为long, 则结果也为long。
  2. 没有long时,结果为int。即使操作数全为short,byte,结果也是int。

浮点运算:

  1. 如果两个操作数有一个为double,则结果为double。
  2. 只有两个操作数都是float,则结果才为float。

取模运算:

  1. 其操作数可以为浮点数,一般使用整数,结果是“余数”,“余数”符号和左边操作数相同,如:7%3=1,-7%3=-1,7%-3=1。

 

算术运算符中++(自增),--(自减)属于一元运算符,该类运算符只需要一个操作数。

i++;和++i;

如果是一条单独的语句,没有差别,都是自增1;

如果不是一条单独的语句(语句的一部分)有差别

int n = 6 + m++;  先运算符再+1

int n = 6 + ++m;   先+1再运算

先算乘除,再算加减。算术运算符的优先级别是不同的:

++ --    大于  * /  %   大于  + -

可以使用小括号改变运算顺序

赋值运算符

赋值运算符可以说是Java中使用频率最高的运算符了,也是运算级别最低的运算符。它的运算顺序是自右向左。

除了基本赋值运算符外,还可以和算术运算符结合,组成扩展赋值运算符。

 

赋值及其扩展运算符

运算符

用法举例

等效的表达式

+=

a += b

a = a+b

-=

a -= b

a = a-b

*=

a *= b

a = a*b

/=

a /= b

a = a/b

%=

a %= b

a = a%b

关系运算符

关系运算符用来进行比较运算,如表所示。关系运算的结果是布尔值:true/false;经常用在选择结构if、循环结构for while的条件表达式中,进行条件判断。

 关系运算符

运算符

含义

示例

==

等于

a==b

!=

不等于

a!=b

>

大于

a>b

<

小于

a<b

>=

大于或等于

a>=b

<=

小于或等于

a<=b

 

注意事项

  1. =是赋值运算符,而真正的判断两个操作数是否相等的运算符是==。
  2. ==、!= 是所有(基本和引用)数据类型都可以使用。
  3. > 、>=、 <、 <= 仅针对数值类型(byte/short/int/long,float/double 以及char)。
  4. > 、>=、 <、 <= 的优先级别大于==、!=

逻辑运算符

 逻辑运算符

运算符

说明

逻辑与

&( 与)

两个操作数为true,结果才是true,否则是false

逻辑或

|(或)

两个操作数有一个是true,结果就是true

短路与

&&( 与)

只要有一个为false,则直接返回false

短路或

||(或)

只要有一个为true, 则直接返回true

逻辑非

!(非)

取反:!false为true,!true为false

逻辑异或

^(异或)

相同为false,不同为true

 

运算符的优先级别

 

优先级

运算符

结合性

1

()

括号运算符

由左至右

2

!、+(正号)、-(负号)

一元运算符

由左至右

2

~

位逻辑运算符

由右至左

2

++、--

递增与递减运算符

由右至左

3

*、/、%

算术运算符

由左至右

4

+、-

算术运算符

由左至右

5

<<、>>

位左移、右移运算符

由左至右

6

>、>=、<、<=

关系运算符

由左至右

7

==、!=

关系运算符

由左至右

8

&

位运算符、逻辑运算符

由左至右

9

^

位运算符、逻辑运算符

由左至右

10

|

位运算符、逻辑运算符

由左至右

11

&&

逻辑运算符

由左至右

12

||

逻辑运算符

由左至右

13

? :

条件运算符

由右至左

14

=、+=、-=、*=、/=、%=

赋值运算符、扩展运算符

由右至左