利用无符号右移把十进制数43转换为十六进制

2020-11-22 21:18:05 字数 5922 阅读 8940

1楼:匿名用户

十进制转十六进制就是除以16

43/16=2 43%16=11=0xb (43=0x2b)int i=43;

int m= i>>4; //2

int n= i %16; //0xb

printf("0x%d%d",m,n);

计算机二进制,十进制,八进制,十六进制怎么转换

2楼:喵喵喵

1、二进制转换为十进制

二进制数00111从低位到高位的位权依次是2的0次幂1、2的1次幂2、2的2次幂4、2的3次幂8、2的4次幂16。

理解了二进制计数的基数和位权,就可以进行数制转换了。00111如何转换成十进制计数呢?转换很简单,将二进制数从高位到低位每个数字乘以相应的位权然后求和就可以了。

00111(二进制)= 0 * 2^(5-1) + 0 * 2^(4-1) + 1 * 2^(3-1) + 1 * 2^(2-1) + 1 * 2^(1-1)

= 0 * 16 + 0 * 8 + 1 * 4 + 1 * 2 + 1 * 1

= 7(十进制)

2、十进制转换为二进制

十进制整数到二进制整数的转换可以采用“除2取余,逆序输出”法,

具体转换过程是,用2去除一个十进制数,得到商和余数,然后再用2去除商,又会得到商和余数,循环往复直至商为0为止。如果是十进制小数转二进制小数,则采用“乘2取整,顺序输出”。转换过程如下图所示:

3、二进制和八进制之间的转换

二进制转八进制:取三合一法,即从二进制的小数点为分界点,向左(向右)每三位取成一位,接着将这三位二进制按权相加,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的八进制数。

如果向左(向右)取三位后,取到最高(最低)位时候,如果无法凑足三位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足三位。

4、八进制转二进制:取一分三法,即将一位八进制数分解成三位二进制数,用三位二进制按权相加去凑这位八进制数,小数点位置照旧。

5、二进制和十六进制之间的转换

二进制转十六进制:取四合一法,即从二进制的小数点为分界点,向左(向右)每四位取成一位,接着将这四位二进制按权相加,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的十六进制数。

如果向左(向右)取四位后,取到最高(最低)位时候,如果无法凑足四位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足四位。

6、十六进制转二进制:取一分四法,即将一位十六进制数分解成四位二进制数,用四位二进制按权相加去凑这位十六进制数,小数点位置照旧。

7、十进制和八进制之间、十进制和十六进制之间都是先把十进制转换为二进制,然后在转换为八进制或者十六进制。

扩展资料

某进制计数制允许选用的基本数字符号的个数成为基数。一般来说,n进制的基数为n,可进行选用的基本数字符号有n个,分别为0到n-1。

比如十六进制的基数为16,可供选择的基本数学符号为0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f十六个。

位权是指,该进位制中每一固定位置对应的单位值,简称为权。

以十进制计数制来说,计数单位分别为个位、十位、百位、千位、万位、十万位……,其中个位数表示数值1、十位数表示数值10、百位数表示数值100、千位数表示数值1000、……,每个位数表示的数值叫位权。

位权通过计算基数的n-1次幂就可以得到,这里的n是指位数所在数字中的位置。在十进制中就是10的(n-1)次幂。

例如,对十进制数1260来说,个位数是1260的第一个数字,因此n为1;十位数是第二个数字,因此n为2;百位数是第三个数字,因此n为3;千位数是第四个数字,因此n为4。

由此,个位数的位权为10的1-1次幂是1,十位数的位权为10的2-1次幂是10、百位数的位权为10的3-1次幂是100、千位数的位权为10的4-1次幂是1000。

1260 = 1 * 10^(4-1) + 2 * 10^(3-1) + 6 * 10^(2-1) + 0 * 10^(1-1)

= 1 * 1000 + 2 * 100 + 6 * 10 + 0 * 1

= 1000 + 200 + 60 + 0

3楼:匿名用户

有一个公式:二

进制数、八进制数、十六进制数的各位数字分别乖以各自的基数的(n-1)次方,其和相加之和便是相应的十进制数。个位,n=1;十位,n=2...举例:

110b=1*2的2次方+1*2的1次方+0*2的0次方=0+4+2+0=6d

110q=1*8的2次方+1*8的1次方+0*8的0次方=64+8+0=72d

110h=1*16的2次方+1*16的1次方+0*16的0次方=256+16+0=272d

2、十进制数转二进制数、八进制数、十六进制数

方法是相同的,即整数部分用除基取余的算法,小数部分用乘基取整的方法,然后将整数与小数部分拼接成一个数作为转换的最后结果。

3、二进制数转换成其它数据类型

3-1二进制转八进制:从小数点位置开始,整数部分向左,小数部分向右,每三位二进制为一组用一位八进制的数字来表示,不足三位的用0补足,

就是一个相应八进制数的表示。

010110.001100b=26.14q

八进制转二进制反之则可。

3-2二进制转十进制:见1

3-3二进制转十六进制:从小数点位置开始,整数部分向左,小数部分向右,每四位二进制为一组用一位十六进制的数字来表示,

不足四位的用0补足,就是一个相应十六进制数的表示。

00100110.00010100b=26.14h

十进制转各进制

要将十进制转为各进制的方式,只需除以各进制的权值,取得其余数,第一次的余数当个位数,第二次余数当十位数,其余依此类推,直到被除数小于权值,最后的被除数当最高位数。

一、十进制转二进制

如:55转为二进制

2|55

27――1 个位

13――1 第二位

6――1 第三位

3――0 第四位

1――1 第五位

最后被除数1为第七位,即得110111

二、十进制转八进制

如:5621转为八进制

8|5621

702 ―― 5 第一位(个位)

87 ―― 6 第二位

10 ―― 7 第三位

1 ―― 2 第四位

最后得八进制数:127658

三、十进制数十六进制

如:76521转为十六进制

16|76521

4726 ――5 第一位(个位)

295 ――6 第二位

18 ――6 第三位

1 ―― 2 第四位

最后得1276516

二进制与十六进制的关系

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进制的值即可。

二进制与八进制间的关系

二进制 000 001 010 011 100 101 110 111

八进制 0 1 2 3 4 5 6 7

二进制与八进制的关系类似于二进制与十六进制的关系,以八进制的各数为0到7,以三位二进制数来表示。如要将51028 转为二进制,5为101,1为001,0为000,2为010,将这些数的二进制合并后为1010010000102,即是二进制的值。

若要将二进制转为八进制,将二进制的位数由右向左每三位一个单位分隔,将事单位对照出八进制的值即可。

一.在计算机应用中,二进制使用后缀b表示;十进制使用后缀d表示,八进制用q表示,十六制使用后缀h表示。

二.二进制,十六进制与十进制的计算转换

1.二进制转换为十进制

计算公式:二进制数据x位数字乘以2的x-1次方的积的总和

例:10101011b=( )d

数据1 0 1 0 1 0 1 1

x-1位

7 6 5 4 3 2 1 0

相应的十进制值即为:27 +25+23+21+20=128+32+8+2+1=171

2.十六进制转换十进制

计算公式:二进制数据x位数字乘以16的x-1次方的积的总和(与二进制转换十制进同理的,将底数换为16)

注意:在十六进制中,10-16依次用a,b,c,d,e,f表示

例:1f3e h=( )d

计算:1*16的3次方+16*16的2次方+3*16的1次方+15*16的0次方=1*4096+16*256+3*16+15*16=4096+4096+48+240=8480

三.十进制与二进制,十六制的计算转换

1.十进制转换为二进制

十进制数据数字除以2的余数的逆序组合

例:404d=( )b

2|404 余0

2|202 余0

2|101 余0

2|50 余1

2|25 余0

2|12 余1

2|6 余0

2|3 余1

2|1计算结果便是:110101000

2.十进制转换十六进制。。。与上面同理,注意的是10以上的数字用字母表示,除数是16

十六进制与二进制的转换,建议通过十进制来进行中转。

带小数点的十进制转换为二进制时同理,小数店后的数位指数为负指数

一、二进制数转换成十进制数

由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数式,然后按十进制加法规则求和。这种做法称为"按权相加"法。

二、十进制数转换为二进制数

十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。

1. 十进制整数转换为二进制整数

十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

2.十进制小数转换为二进制小数

十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。

然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。

回答者:hackerkinsn - 试用期 一级 2-24 13:31

1.二进制与十进制的转换

(1)二进制转十进制

方法:"按权求和"

例: (1011.01)2 =(1×23+0×22+1×21+1×20+0×2-1+1×2-2)10

=(8+0+2+1+0+0.25)10

=(11.25)10

(2)十进制转二进制

· 十进制整数转二进制数:"除以2取余,逆序输出"

例: (89)10=(1011001)2

2 89

2 44 …… 1

2 22 …… 0

2 11 …… 0

2 5 …… 1

2 2 …… 1

2 1 …… 0

0 …… 1

· 十进制小数转二进制数:"乘以2取整,顺序输出"

例: (0.625)10= (0.101)2

0.625

x 21.25

x 20.5x 21.0