java小数正负数据类型_Java - day001 - 8种基本数据类型

一字节8电位

Java byte 最左边一位表示正负,0是正,1是负.

(option / alt)  + / 代码提示

Refactor 重构 Rename 重命名  (windows 重命名是选中需要重命名的文件点击快捷键 F2)

byte       1字节  (Java 的 byte 类型 最左边一位电位表示符号  0正, 1 负)

short      2字节

int          4字节

long        8字节

float        4 字节

double     8字节

char        2字节 (unicode 编码表中的字符)  0~65535

boolean   1字节 ( 一个字节八个电位 00000001 表示真(true), 00000000表示假(flase))

拓展资料:

单精度

单精度数是指计算机表达实数近似值的一种方式。VB中Single(单精度浮点型)变量存储为 IEEE 32 位(4 个字节)浮点数值的形式,它的范围在负数的时候是从 -3.402823E38 到 -1.401298E-45,而在正数的时候是从 1.401298E-45 到 3.402823E38 。

双精度浮点数

双精度浮点数(double)是计算机使用的一种数据类型,使用 64 位(8字节) 来存储一个浮点数。 它可以表示十进制的15或16位有效数字,其可以表示的数字的绝对值范围大约是:2.23x10-308 ~ 1.79x10308。IEEE754为其定制标准。

// 基本类型的字面值的规则(5条)

1: 整数字面值, 是 int 类型

右侧是int

int a  = 4355;

int a = 99999999999999; 错误的 没表明字面值后缀,默认int 但是超出int 范围

2: byte,short , char 比int 小的整数可以用范围内的值直接赋值

byte a  = 127;

3: 浮点数字面值是 double类型

double a = 3.14;

float a = 3.14; 错误没表明字面值后缀,默认double 但是超出 float 范围,不能赋值a

4: 字面值后缀(大小写都可以)

L - long

long a = 9999999999L;

F - float

float a = 3.14f;

D - double

double a = 3.0d;

5: 进制前缀

二进制 4 位(最大1111 是16), 所以二进制可以足够表示所有 16以下 数字,

一个16 进制的字符,可以表示二进制的4位,两个16进制的字符,可以表示8位,及一个字节值.

0x - 16  进制 (表示二进制4位)

0xff  既 255

0  -  8进制 (表示二进制3位)

0377  既255

\u - char 类型 16 进制

必须完整表示 char 类型的两个字节值

'a'  97  '\u0061'

0000 0000 0110 0001

// 基本类型的运算规则(5条)

1.计算结果的数据类型, 与最大的类型一致

3/2 = 1;      (int / int) = int;

3d/2 = 1.5;  (double / int) = double

2: byte, short , char 比int小的整数,运算时会先变成 int 在 运算

byte a = 3;

byte b = 4;

byte c = a + b; (错误), 运算时是 int ,用 byte接收格式不对

3: 整数运算溢出

Integer.MAX_VALUE+1  得负数最小值

就像时钟转圈一样,转到最大,再加回到最小.

300000000*60*60*24*365 (溢出的错误结果, 乘第一次时超出int 范围,后面再乘都是错

300000000L*60*60*24*365(对的)

4: 浮点数运算不精确

2-1.9 = 0.10000000000009

Java  提供了做精确运算的方法,

5: 浮点数的特殊值

Infinity (无穷大)

3.14/0   或者 Double.MAX_VALUE*2; 带负号就是无穷小

NaN (不是数)

负数开方得到, 数学上是虚数, java  不表示虚数

Math.sqrt(-2); 负数开方

// 基本类型的数据转换

从小到大的转换是自动转换,转成浮点数可能会不精确

byte a = 1;   既 00000001 转成 int 类型 为  00000000 00000000 00000000 00000001

byte b = -1, 既 11111111   转成 int 类型 为 11111111 11111111 11111111 11111111

从大的类型转小的类型

int 转 byte 4个字节转成一个字节, 切掉前面的三个字节, 必须强制转型

int a = 356;

byte b = (byte)a;

从大转到小的类型可能引起数据损失, 必须强制转型

浮点数转整数小数会被直接舍弃,

char  (unicode 编码表中的字符)

58f163e4335951b53051d27ab2ff7a2b.png

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页