Java Web架构设计Java Web知识Java程序栈

四、计算机相关知识

2018-11-30  本文已影响41人  一直想上树的猪

1.进制

    在java 程序中支持几种进制的数据。

        十进制:100

        十六进制:0x10

        八进制:012

        二进制(jdk1.7版本之后才支持):0b1010



十进制:

特点:逢十进一,一个十进制位最大为9.一位的取值范围为  [0-9] 闭区间

二进制:

特点:逢二进一,一个二进制位最大为1,一位的取值范围为 [0-1] 闭区间

八进制:

特点:逢八进一,一个八进制位最大为7,一位的取值范围为[0-7]  闭区间

十六进制:

特点:逢16进一,一个十六进制位最大为15  [a-f] 代表 [10-15] 大小写均可。  一位的取值范围为[0-F]  闭区间

        0-15 使用四种进制表示

        

0-15用四种进制表示

2.机器码:原码、反码、补码

原码:

10--->0b1010

用最高位来代表符号位,0代表正数,1代表负数。

约定使用一个字节来代表一个数。

规则:最高位为符号位 0代表正数  1代表负数  后面所有的位都是数值位。

原码的

10:00001010

-10:10001010

+0: 0000_0000

-0:  1000_0000

反码:

正数:反码和原码一致

负数:规则:符号位不变,其他的数值位全部0--->1  1--->0

-10:

10001010--->11110101

补码:计算机使用补码存储数据。

规则:

正数:正数的补码和原码一致,和反码也一致----三码合一。

负数:

规则:先求负数的原码--->求反码--->+1  ---->补码

-1:

1000 0001--反码--> 1111 1110--求补 +1 --> 1111 1111

原因:为何使用补码:

1:没有+0 和 -0 之分

0000 0000

-0 :1000 0000--->1111 1111 + 1 ---> 1 0000 0000

2:使用补码,最高位的符号位,计算机并没有把最高位当作符号位来处理,而是当作普通的数值位来处理的。会简化cpu的设计。

补充一点:

补码的补码是原码。

3.进制的转换

1010101--->十进制

123----> 1* 10^2 + 2*10^1 + 3*10^0 == 100+ 20 +3

1010101 ----> 1*2^0 + 1* 2^2 + 1* 2^4 + 1* 2^6 = 1+4+16+64 = 85;

0xfa1 ---> 15*16^2 + 10*16^1 + 1*16^0 = 3840+160+1 = 4001。

任何的进制--->10进制 都可以使用展开乘以以该进制为底数的次幂的形式。如上所示。

10---->2.

67

十进制到二进制:除二取余法。逆序排列。

八进制  十六进制  和 二进制之间的相互转换。

例如:

0xff<--->1111 1111

0x11a<--->0001 0001 1010

0117<-->  1001111

总结:二进制和十六进制 是 4bit ---对应一个16进制位 

二进制和八进制  是 3bit ---对应一个8进制位

上一篇 下一篇

猜你喜欢

热点阅读