[note] 数据类型

基本数据类型


1. 整型: byte, short, int, long   (有符号补码数)

               8         16     32   64     (有符号)

2. 浮点型: float   double

                    32          64          (有符号)

3. 字符型:  char

                      16                  (无符号)

4. boolean型: boolean 

                             8

-----------------------------

1. byte,short, char,int  long的字面量均为int,在底层保存时均为32位,即

byte b=8;  //int a=8; b=a;   即8处理为32位int型再赋值给byte型

在不超过byte,short,的表示范围内,可以直接赋值,如

byte b=127;

byte b=128; //  编译错误,byte表示范围为 -128~127, 需要强制转换

byte b=(byte)128;

由于实际是用32位保存,当用Integer.toBinaryString(i)表示其二进制数时,负数都是显示为32位(因为1不能省略),正数有多少有效位显示多少有效位


所以,long型在赋值时如果超过int表示范围的数值需要加l或者L标志,如 

long l1=123;  //在int范围内

long l2=123123232323L; //超出int表示范围需要补L标志


2. float double的字面量均为 double型

因为float和double的阶码尾数的位数均不同,不能直接赋值

float f1=122.122; //编译错误

float f2=122.122f; //correct

double d1=122.122; //correct

double d2=122.122d; //correct


3. 精度上 precision : byte<short<float <int<double<long 

                                        7       15        23     31    52       63


PS:浮点数比较和运算时只能做到尽可能精确,但不如整型准确,比如

double d=2.6;

d=d-2; // 输出d 值为 0.6000...01  // 0.6在保存在二进制浮点数时就除不尽

---------------------

补码,即最高位为符号位的二进制表示方法

           n位补码的表示范围是 -2^(n-1)  ~~ 2^(n-1)-1, 

           如 8位补码的表示范围是  -2^7 ~~ 2^7-1 ,即-128 ~~ 127 

           

          正数直接表示为二进制数,符号位为0; 负数的二进制表示方法为 正数的二进制数取反+1  (注意最小负数不能用此方法)

          最大正数的表示形式为 01111.... (除符号位全部为1)

          最小负数的表示形式为 10000...  (除符号位全部为0),每+1即为高一位的负数


---------------------------

char型为无符号整数,数值为字符的unicode编码值,能表示2^16个字符


总结:

数据类型包含   基本数据类型  和引用数据类型

基本数据类型包含布尔类型和数值类型

数值类型包含定点类型和浮点类型

定点类型包含 byte, char, short,int long

浮点类型包含 float double

布尔类型为boolean

引用数据类型包含类,接口,数组



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值