java变量、进制、数据类型-20141227002

来源:互联网 发布:plc编程题目 编辑:程序博客网 时间:2024/04/30 16:55

1、  java变量

1.1    变量的含义

变量就是让程序语言更好表达。

1.2    java中的变量

每一个变量都属于一种数据类型

Java强类型语言,使用规则如下:

           变量必须声明,并且初始化以后才能使用

           变量必须有明确的类型;

           变量不能重复的定义,即是同一个变量明不能重复的声明类型;

变量初始化=声明+赋值;

声明即使明确变量的数据类型;

未初始化使用变量,编译报错。

1.3    变量的作用域

在声明的地方开始,到块结束;离开变量的作用域,变量将会被收回。

一般一个{}表示一个块,在块之外调用就会报编译错误,因为变量已经收回。

2、  进制转换基础

2.1  10进制

23678(10迚制) = 2*10000+3*1000+6*100+7*10+8*1

= 2*10^4 + 3*10^3 + 6*10^2 + 7*10^1 +8*10^0 = 23678

10称做"基数"10^n10n次幂)被称作""

 

 

 

2.2  2进制

 

2进制是2作为基数,2^作为权;

0100 0001 = 2*2^6+2*2^0=65

2.3  补码基础

A、计算机中正数和负数之间的关系是取反加一:~3+1=-3(~3表示3取反),

0011 取反 1100 + 1 = 1101 第一个1是符号位表示负数,1101二进制对应十进制的-3;

B、补码运算时封闭的:预算范围包含在补码范围之内,超出范围溢出如:

1111 + 1 = 0000

C、4位二进制补码最多表示2^4(16)个数,数的范围是-8~7;

     8位二进制补码最多表示2^8(256)个数,-128~127;

  16位二进制补码最多表示2^16(65536)个数,-32768~3276;

32位二进制补码最多表示2^32个数,-2G~2G-1;

 

0000 1111 = 1*2^3+1*2^2+1*2^1+1*2^0=15; 正数

1111 1001 取反 0000 0110 +1 = 0000 0111 = 7 (-7)负数

计算机中二进制转十进制:

以0开头的直接将二进制转换为十进制;

以1开头,按位取反,末尾加1,转换为10进制,取负号;

2.4  Java中的2进制规则

Java内部只有二进制补码,计算机内部数据以二进制补码表示。

Java内部采用补码运算,自动发送上溢出(乘法)和下溢出(除法)。

Java内部没有十进制,但是java尽量按照人类的习惯输入输出。

补码的负数,最高位为1,也叫符号位。

 

2.5  16进制

十六进制,16是基数,16^是权,十六进制是二进制的简写;

如11010010 = d2

 

以0开头是八进制,以0x开头的是十六进制。

 

3、  Java数据类型

Java中数据类型分为引用类型和数据基本类型,基本类型有8中。

 

3.1    8中基本数据类型

整型:byte、short、int、long

浮点型:float、double

字符型:char

Boolean型:boolean

3.2     整型

一个字节8位补码;

Byte 8位补码,两个字节,表示范围-2^7~2^7-1。

Short 16位补码,4个字节,表示范围-2^15~2^15-1。

Int 32 位补码,8个字节,表示范围-2G~2G-1。

Long 64位补码,16个字节,表示范围-2^15~2^15-1。

 

数字字面量默认是int型,如果不超出声明类型的范围,可以给小类型直接赋值。

Java底层byte、short按照32位计算,输出的二进制扩展符号位为32为输出。

 

Long型字面量要使用L后缀,字面量默认是int型,超出int数字范围的的要加L结尾。

 

3.3    浮点数类型

浮点数原理:二进制科学计算法

10111=1.0111*(2^100)   100=4

 

Float 共32位(与int相同)其中1符号位,指数8位,位数32位,其精度是32位;小数以位数长度表示精度,故int的精度是31位比float的23位精度要高,但是int的范围是-2^31~2^31-1,float的范围是-2^128~2^128-1;

Int类型的数据表示的数据范围比float的数据范围小,但是精度比float的精度高。

 

Float的精度过低,所以一般很少用,一般用double类型。

Double类型占64位16个字节,1符号位,11位指数,52位位数数。

Double的比int精准不如long,范围却远远大于long         浮点数的字面量默认是double

 

3.4    字符类型

字符型是16位无符号整型,是一个二进制数,这个数值是一个字符的Unicode编码值;

Unicode是全球范围内的编码方法;

Java char的范围是0~65535不能表示全部的Unicode,只能表示Unicode的常用部分

程序中为一个字符赋值,字符的字面量使用单引号,可以为char赋值的有字符、数字、符号。

3.5    Boolean类型

4、  数据类型转化

 

 

自动类型转换

正方向,小类型到大类型的转换会自动完成。自动类型转换也叫"隐式类型转换", 是自动发生的, 一般不需要处理。规则是:符号位会自动扩展, 负数补1, 正数补0, 保证补码数值不变,注意:整数到浮点数转换会损失精确度。

 

 

强制类型转换

强制类型转换,也叫显示类型转换, 是按照反方向迚行的转换, 这种转换会溢出, 或者损失精度,要注意数据的范围。

 

5、  Java控制台输出

0 0
原创粉丝点击