龙空技术网

数制与数制的转换

辰鸿兰鹰科普 1595

前言:

此时小伙伴们对“c语言10110b”可能比较注重,咱们都想要剖析一些“c语言10110b”的相关内容。那么小编也在网摘上汇集了一些有关“c语言10110b””的相关资讯,希望你们能喜欢,小伙伴们快快来了解一下吧!

「辰鸿科普」 1.数制

数制就是数的进位制。日常生活中经常会接触到0、7、8、9、168、295等这样的数字,它们的进位制为十进制。另外,还有二进制和十六进制等。

(1)十进制数

十进制数有以下特点。

① 有10个不同的数码:0、1、2、3、4、5、6、7、8、9。任意一个十进制数均可以由这10个数码组成。

② 遵循“逢十进一”的计数原则。

对于任意一个十进制数N,它都可以表示成:

N=an-1×10n-1+an-2×10n-2…a1×101+a0×100+a-1×10-1…a-m×10-m

式中,m和n为正整数;an-1,an-2,…,a-m称为数码;10称作基数;10 n-1,10n-2,是各位数码的“位权”。

例如,根据上面的方法可以将十进制数3259.46表示成:3259.46=3 × 103 + 2 × 102 + 5 × 101 + 9 × 100 + 4 × 10-1 + 6 × 10-2。

(2)二进制数

十进制是最常见的数制,此外,还有二进制、八进制、十六进制等。在数字电路中,二进制用得最多。

1)二进制数的特点

二进制数有以下特点。

① 有两个数码:0和1。任何一个二进制数都可以由这两个数码组成。

② 遵循“逢二进一”的计数原则。

对于任意一个二进制数N,它都可以表示成:

N=an-1×2n-1+an-2×2n-2+…a0×20+a-1×2-1…a-m×2-m

式中,m和n为正整数;an-1,an-2,…,a-m称为数码;2称作基数;2n-1,2n-2,…,2-m是各位数码的“位权”。

例如:二进制数11011.01可表示为:11011.01B=1×24+1×23+0×22+1×21+1×20+ 0×…,10-m2-1+1×2-2。

注:为了说明数据为二进制数,一般在数据后加上“B”,十六进制数加上“H”。

2)二进制数的四则运算

① 加法运算。加法运算的法则是:“逢二进一”。具体有

0+0=0 0+1=1 1+0=1 1+1=10

当遇到“1+1”时向相邻高位进1。

例如:求1011B+1011B=?可以用与十进制数相同的竖式计算

即1011B+1011B=10110B

② 减法运算。减法运算的法则是:“借一当二”。具体有

0-0=0 1-0=1 1-1=0 10-1=1

当遇到“0-1”时,需向高位借1当2用。

例如:求1100B-111B=?

即1100B-111B=101B

③ 乘法运算。乘法运算的法则是:“各数相乘,再作加法运算”。具体有

0×0=0 1×0=0 0×1=0 1×1=1

例如:求1101B×101B=?

即1101B×101B=1000001B

④ 除法运算。除法运算的法则是:“各数相除,再作减法运算”。具体有

0÷1=0 1÷1=1

例如:求1111B÷101B=?

即1111B÷101B=11B

(3)十六进制数

十六进制数有以下特点。

① 有16个数码:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。这里的A、B、C、D、E、F分别代表10、11、12、13、14、15。

② 遵循“逢十六进一”的计数原则。

对于任意一个十六进制数N,它都可以表示成:

N=an-1×16n-1+an-2×16n-2+…a0×160+a-1×16-1…a-m×16-m

式中,m和n为正整数;an-1,an-2,…,a-m称为数码;16称作基数;16 n-1,16n-2,…,16-m是各位数码的“位权”。

例如:十六进制数3A6.DH可表示为:

3A6.DH=3×162+10×161+6×160+13×16-1

2.数制的转换

(1)二、十六进制数转换成十进制数

二、十六进制数转换成十进制数的方法是:将二、十六进制数各位数码与位权相乘后求和,就能得到十进制数。下面举例说明。

二进制数转换成十进制数:101B=1×22+0×21+1×20=4+0+1=5

十六进制数转换成十进制数:C6H=12×16+6×160=198

(2)十进制数转换成二、十六进制数

十进制数转换成二进制数的方法是:采用除2 取余法,即将十进制数依次除2,并依次记下余数,一直除到商数为0,最后把全部余数按相反次序排列,就能得到二进制数。

十进制数转换成十六进制数的方法与转换成二进制数基本相同,不同之处在于采用除16取余法。

例:将十进制数29转换成二进制数

即29=11101B

例:将十进制数181转换成十六进制数

即181=B5H

(3)二进制数与十六进制数的相互转换

① 二进制数转换成十六进制数。二进制数转换成十六进制数的方法是:从小数点起向左、右按4位分组,不足4位的,整数部分可在最高位的左边加“0”补齐,小数点部分可在最低位右边加“0”补齐,每组用其对应的十六进制数代替,将各个十六进制数依次写出即可。

例:将二进制数1011000110.111101B转换为十六进制数。

注:十六进制的16位数码为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,它们分别与二进制数0000、0001、0010、0011、0100、0101、0110、0111、1000、1001、1010、1011、1100、1101、1110、1111相对应。

② 十六进制数转换成二进制数。十六进制数转换成二进制数的过程与上述方法相反。其过程是:从左到右将待转换的十六进制数中的每个数码依次用4位二进制数表示。

例:将十六进制数31AB.6DH转换成二进制数

31AB.6DH=0011000110101011.01101101 B

1.2.3 单片机中数的表示及运算

单片机中的数是以二进制表示的,分为有符号数和无符号数两种。

1.有符号数的表示方法

有符号数是指有“+(正)”、“-(负)”符号

标签: #c语言10110b #数制转换的基本思想