您的位置:首页 > 理论基础

java基本数据类型及计算机的原码,反码,补码,进制转换

2014-05-30 15:56 681 查看
一、java数据类型
1、java基本数据类型
java中的基本数据类型有boolean,int,short,byte,long,double,float,char
存储长度(1字节占8位):
byte 1字节 -128~127
short 2字节
char 2字节
int 4字节
long 8字节
float 4字节
double 8字节
boolean型没有表示。

2、java中的整数的表示法
2-1、十进制表示法
如0,1,-1

2-2、八进制表示法
以0开始的整数被认为是8进制数,如01,012,-023等
2-3、十六进制表示法
以0x(0X)开始的整数被认为是十六进制数,如0x5,0X123,-0x33等
注意:如果在整数后面加“L”或者“l”则表示该数是long型 如123L的类型为long

3、浮点型数据表示法
2种形式
3-1、如0.123,23.01等
3-2、用“e”或“E”来表示,如2e3(2000.0),1E2(100.0),1e-1(0.1)等,e后面紧跟的一个数被看做是 与e一个整体如1e-1中的e-1。
注意:浮点型的数据后面也可以跟d,D,f,F来表示其类型,如123f(123F)表示float型,而123d(123D)表示double型

4、字符型数据表示法
如'a','b',' '等。'\'是非法的因为它是转义字符,用'\\'代替

5、整形数据的位运算
只有整形数据才可以进行位运算,如&与,|或,~非,^异或操作,还有<<左移,>>带符号右移,>>>无符号 右移。

二、计算机中的数据表示
计算机中的数据由二进制表示
原码:最高位位符号位(0为正,1为负),0有2种表示法如00,10.
反码:正数的反码跟原码相同,负数的反码是符号位为1,其余各位是对原码取反;0也有2种表示如000, 111.
补码:正数的补码跟原码相同,负数的补码是:符号位为1,其余各位是对原码取反,然后再在真个数上加 1,溢出时舍去最高位。
有符号的整数    原码    反码    补码

  47      00101111  00101111  00101111(正数补码和原码、反码相同,不能从字面理解)

 -47      10101111  11010000  11010001(负数补码是在反码上加1)

进制转换

2进制 0000 0001 0010 0011 0100 0101 0110 0111

16进制 0 1 2 3 4 5 6 7

2进制 1000 1001 1010 1011 1100 1101 1110 1111

16进制 8 9 a(10) b(11) c(12) d(13) e(14) f(15)

可以用四位数的二进制数来代表一个16进制,如3A16 转为二进制为:

3为0011,A 为1010,合并起来为00111010。可以将最左边的0去掉得1110102

右要将二进制转为16进制,只需将二进制的位数由右向左每四位一个单位分隔,将各单位对照出16进制的值即可。

二进制换八进制

例:

10101101 看做 010 101 101

换成对应的就 255

二进制换十六进制

例:

10111101101 看做 0101 1110 1101

换成对应的就是 5ED

二进制转十进制

10111 这是二进制数

10111=1*2的4次方+0*2的3次方+1*2的2次方+1*2的1次方+1*2的0次方 = 16+0+4+2+1=23

十进制转二进制,整数部分按除2取余,小数部分按乘2取整.

例:

50/2

........ 余0

25/2 ........ 余1

12/2 ........ 余0

6/2 ........ 余0

3/2 ........ 余1

1 1

50的二进制就是 110010

小数

0.25*2 ........ 0.5 整数 0

0.5*2 ........ 1.0 整数 1

0.25的二进制数就是 0.01

十进制数换八进制数,整数部分按除8取余,小数部分按乘8取整.

十进制转十六进制,整数部分按除16取余,小数部分按乘16取整.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: