`
l_rui_ci
  • 浏览: 39895 次
  • 性别: Icon_minigender_1
  • 来自: 桂林
社区版块
存档分类
最新评论

十进制,二进制,八进制,十六进制之间的转换,左右移运算符 

阅读更多

十进制,二进制,八进制,十六进制之间的转换,左右移运算符 

进制概念

1
十进制


十进制使用十个数字(0123456789)记数,基数为10,逢十进一。


历史上第一台电子数字计算机ENIAC是一台十进制机器,其数字以十进制表示,并以十进制形式运算。设计十进制机器比设计二进制机器复杂得多。而自然界具有两种稳定状态的组件普遍存在,如开关的开和关,电路的通和断,电压的高和低等,非常适合表示计算机中的数。设计过程简单,可靠性高。因此,现在改为二进制计算机。


2
二进制


二进制以2为基数,只用01两个数字表示数,逢2进一。


二进制与遵循十进制数遵循一样的运算规则,但显得比十进制更简单。例如:


1)加法:
0+0=0 0+1=1 1+0=1 1+1=0

2)减法:
0-0=0 1-1=0 1-0=1 0-1=1

3)乘法:
0*0=0 0*1=0 1*0=0 1*1=1

4)除法:0/1=0 1/1=1,除数不能为
0

3
八进制


所谓八进制,就是其基数为8,基数值可以取012345678个值,逢八进一。


八进制与十进制运算规则一样。那么为什么要用八进制呢?难道要设计八进制的计算机么?实际上,八进制与十六进制的引用,主要是为了书写和表示方便,因为二进制表示位数比较长。如:(102410 用二进制表示为 100000000002,共有11个数字,用八进制表示为(20008。更重要的是,由于二进制与八进制存在在一种对等关系,每三位二进制与一位八进制数完全对等(23=8)。所以二进制和十进制在运算上无区别,而时进制不具备这一优点。


4
十六进制


十六进制应用也是非常广泛的一种计数制。在使用者看来,十六进制是二进制数的一种更加紧凑的一种表示方法。


基数为:0123456789ABCDEF,逢十进一。在十六进制系统中,数值为1015的数分别用ABCDEF表示。


二进制数及与之等值的八进制、十进制和十六进制数


二进制 八进制 十进制 十六进制

0000
0 0
0
0001
1 1
1
0010
2 2
2
0011
3 3
3
0100
4 4
4
0101
5 5
5
0110
6 6
6
0111
7 7
7
1000
10 8
8
1001
11 9
9
1010
12 10 A

1011
13 11
B
1100
14 12 C

1101
15 13
D
1110
16 14
E
1111
17 15



二。进制转换


1
。二进制与十进制数间的转换


1)二进制转换为十进制


将每个二进制数按权展开后求和即可。请看例题:


把二进制数(101.1012=1*22+0*21+1*20+1*2-1+0*2-2+1*2-3=5.625
10

2)十进制转换为二进制


一般需要将十进制数的整数部分与小数部分分开处理。


整数部分计算方法:除2取余法 请看例题:


十进制数(5310的二进制值为(110101
2

小数部分计算方法:乘2取整法,即每一步将十进制小数部分乘以2,所得积的小数点左边的数字(01)作为二进制表示法中的数字,第一次乘法所得的整数部分为最高位。请看例题:


将(0.512510转换成二进制。(0.512510=0.101
2

2
八进制、十六进制与十六进制间的转换


八进制、十六进制与十六进制之间的转换方法与二进制,同十进制之间的转换方法类似。例如:


738=7*81+3=59
10

0.56
8=5*8-1+6*8-2=(0.71875)10

(12A)16=1*162+2*161+A*160=(298)10

(0.3C8)16=3*16-1+12*16-2+8*16-3=(0.142578125)10

十进制整数→→→→→八进制 方法:8取余


十进制整数→→→→→十六进制 方法:16取余例如:


17110=253
8

265310=A5D
16

十进制小数→→→→→八进制小数 方法:8取整


十进制小数→→→→→十六进制小数 方法:16取整例如:


07187510=0.56
8

(0.142578125)10=(0.3C8)16

3.
非十进制数之间的转换


1)二进制数与八进制数之间的转换


转换方法是:以小数点为界,分别向左右每三位二进制数合成一位八进制数,或每一位八进制数展成三位二进制数,不足三位者补0。例如:


423458=100 010 011.100 101
2

1001001.11012=001 001 001.110 1002=111.64
8

2
。二进制与十六进制转换


转换方法:以小数点为界,分别向左右每四位二进制合成一位十六进制数,或每一位十六进制数展成四位二进制数,不足四位者补0。例如:


ABCDEF16=1010 1011 1100 1101.1110 1111
2

101101101001011.011012=0101 1011 0100 1011.0110 10002=5B4B6816

补码:

一个正数的补码和该数的原码(即该数的二进制形式)相同。

求一个负数的补码的方法是:将该数的绝对值的二进制形式,按位取反再加1。例如求-10的补码:

10的原码:0000000000001010

取反: 1111111111110101

再加1 1111111111110110

1111111111110110就是-10的补码了。

如果已知负数和补码求正数的补码:则反过来求就行了。

左移运算符(<<)a<<b,表示a的二进制向左移动b位;

右移运算符(>>)a>>b, 表示a的二进制向右移动b位。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics