数制转换(D为十进制,B为二进制,H为十六进制,O为八进制)

2020-12-26 14:21:09 字数 7160 阅读 7449

1楼:

(217)d=(11011001)b=(d9)h=(331)0

(1010011011)b=(29b)h

(98)d=(1100010)b=(62)h=(142)0

能详细讲解一下二进制(b) 八进制(o) 十进制(d) 十六进制(h)之间的互相转换过程

2楼:路过的一个

二进制转化成十进制 公式: 举例: 101.

101(b)= 1*22+0*21+1*20+1*2-1+0*2-2+1*2-3 = 4+0+1+0.5+0+0.125 = 5.

625 715(o)= 7*82+1*81+5*80 = 461 a01b(h)= 10*163+0*162+1*161+11*160 = 40987 2、十进制转化成二进制 方法: 整数部分:除以 2取余数,直到商为0,第一个余数是2进制数的最低位,最后的余数是最高位。

小数部分:乘以 2取整数,第一个整数是2进制数的最高位,最后的整数是最低位。 举例:

100.345(d)=1100100.01011(b) 100(d)=144(o)=64(h) 2 |100 余数 0.

345 取整 8 |100 2 |50 余0 最低位 * 00002 8 |12 余4 最低位 2 |25 余0 0.690 0 最高位 8 |1 余4 2 |12 余1 * 00002 2 |0 余1 最高位 2 |6 余0 1.380 1 2 |3 余0 * 00002 16 |100 2 |1 余1 0.

760 0 16 |6 余4 最低位 0余1 最高位 * 00002 16 |0 余6 最高位 2 | 1.520 1 * 00002 01.04 1 最低位 100(d)=144(o)=64(h)=1100100(b) 3、八进制和十六进制转化成二进制 每一个八进制数对应二进制的三位。

每一个十六进制数对应二进制的四位。 2c1d(h)= 0010 1100 0001 1101(b) 7123(o)= 111 001 010 011(b) 2 c 1 d 7 1 2 3 4、二进制转化成八进制和十六制 整数部分:从右向左进行分组。

小数部分:从左向右进行分组。 转化成八进制三位一组。

转化成十六进制四位一组。位数不足一组时用零补够。 11 0110 1110.

1101 01(b) 0011 0110 1110. 1101 0100(b) =36f.d4(h) 3 6 f d 4 1 101 101 110.

110 1(b) 001 101 101 110. 110 100(b) =1556.64(o) 1 5 5 6 6 4

希望采纳

计算机的进制转换 b二进制o八进制d十进制h十六进制

3楼:匿名用户

很简单啊,比如(1100111)b=(147)o=(67)h 把二进制从后向前每3位换算为一位8进制,如果是十六进制那么就每4位进行转换,反过来也可以的

4楼:匿名用户

213/2=106余1 011 010 101 b106/2=53余0 3 2 5 o 11010101b=325o53/2=26余1 1101 0101 b26/2=13余0 13(d) 5 h 11010101b= d5h13/2=6余1 6/2=3余03/2=1余11/2=0余1231=11010101b自己算的可能有错,解题思路是这样的.

5楼:匿名用户

教你个偷懒的方法。。。打开微软自带的计算器

输入一个数,再调进制,就万事ok了

6楼:匿名用户

【213】d=[11010101 ]b=[ 325]o=[d5 ]h [45.a]h=[1000101.1010 ]b= [105.

12 ]o=[69.10 ]d [11110011.011]b=[ 363.

3]o=[243.3 ]d=[ f3.6]h [177]d [10110001 ]b=[261 ]o=[ b1]h [10110011]b=[179 ]d [1011100110]b=[742 ]d [185]d=[10111001 ]b

数制转换(其中b表示二进制,d表示十进制,h表示十六进制)

7楼:吃腻了白菜粉条

二进制数也有其运算规则

:加法:0+0=0????0+1=1???1+0=1????1+1=10

乘法:0×0=0????0×1=0????1×0=0????1×1=1

二进制数与十进制数如何转换:

(1) 二进制数—→十进制数

对于较小的二进制数:

对于较大的二进制数:

方法1:各位上的数乘权求和??例如:

(101101)2=1×25+0×24+1×23+1×22+0×21+1×20=45

(1100.1101)2=1×23+1×22+0×21+0×20+1×2-1+1×2-2+0×2-3+1×2-4=12.8125

方法2:任何一个二进制数可转化成若干个100…0?的数相加的总和??例如:

(101101)2=(100000)2+(1000)2+(100)2+(1)2

而这种100…00形式的二进制数与十进制数有如下关联:1后有n个0,则这个二进数所对应的十进制数为2n。

所以:(101101)2=(100000)2+(1000)2+(100)2+(1)2=25+23+22+20=45

(2)十进制数—→二进制数

整数部分:整除以2取余法。例如:75

75/2=37…1??37/2=18…1??18/2=9…0??9/2=4…1??4/2=2…0??2/2=1…0???1/2=0…1

将得到的一系列的余数倒过来书写就得到该数所对应的二进制数(1001011)2

小数部分:乘以2取整法。例如:0.7

0.7×2=1.4…1??

0.4×2=0.8…0???

0.8×2=1.6…1???

0.6×2=1.2…1??

0.2×2=0.4…0

3.八进制数

八进制数是由0、1、2、3、4、5、6、7、8任意组合构成的,其特点是逢八进一。为了与其它的数制的数区别开来,我们在八进制数的外面加括号,且在其右下方加注8,或者在其后标q。

八进制数的基数是8,任何一个八进制数亦可拆分成由各位数字与其对应的权的乘积的总和。其整数部分的权由低向高依次是:1、8、82、83、84、85、……,其小数部分的权由高向低依次是:

8-1、8-2、8-3、8-4、……。

八进制数与其它数制的转换:

(1)与十进制数的互换

八进制数—→十进制数

十进制数—→八进制数

方法均与二进制数与十进制数互换的方法一样。

(2)与二进制数的互换

八进制数—→二进制数

把八进制数的每一位改成等值的三位二进制数,即“一位变三位”。

例如:56.103q

解:?5?????6?.??1????0????3

???? ↓????↓???↓???↓???↓??????????????

???? 101??110???001??000??011

所以(56.103)8=(101110.001000011)2

二进制数—→八进制数

把二进制数从小数点开始向两边每三位为一段(不足补0),每段改成等值的一位八进制数即可,即“三位变一位”。

4.十六进制数

十六进制数是由0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f任意组合构成的,其特点是逢十六进一。为了与其它的数制的数区别开来,我们在十六进制数的外面加括号,且在其右下方加注16,或者在其后标h。

十六进制数的基数是16,任何一个十六进制数亦可拆分成由各位数字与其对应的权的乘积的总和。其整数部分的权由低向高依次是:1、16、162、163、164、165、……,其小数部分的权由高向低依次是:

16-1、16-2、16-3、16-4、……。

十六进制数与其它数制的转换:

(1)与十进制数的互换

十六进制数—→十进制数

十进制数—→十六进制数

方法均与二进制数与十进制数互换的方法一样。

(2)与二进制数的互换

十六进制数—→二进制数

把十六进制数的每一位改成等值的四位二进制数,即“一位变四位”。

例如:(3ad.b8)16

解:?3????a?????d.????b?????8

???? ↓????↓????↓????↓????↓??????????????

???? 0011??1010??1101??1011??1000

所以(3ad.b8)16=(1110101101.10111)2

二进制数—→十六进制数

把二进制数从小数点开始向两边每四位为一段(不足补0),每段改成等值的一位十六进制数即可,即“四位变一位”。

下表中列出了一些数的

二、八、十和十六进制形式

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

0000 0 0 0 1001 11 9 9

0001 1 1 1 1010 12 10 a

0010 2 2 2 1011 13 11 b

0011 3 3 3 1100 14 12 c

0100 4 4 4 1101 15 13 d

0101 5 5 5 1110 16 14 e

0110 6 6 6 1111 17 15 f

0111 7 7 7 10000 20 16 10

1000 10 8 8 10001 21 17 11

???二、计算机中数的表示

在计算机中所有的数据、指令以及一些符号等都是用特定的二进制**表示的。

??? 1.数值数据的表示

我们把一个数在计算机内被表示的二进制形式称为机器数,该数称为这个机器数的真值。机器数有固定的位数,具体是多少位受到所用计算机的限制。机器数把其真值的符号数字化,通常是用规定的符号位(一般是最高位)取0或1来分别表示其值的正或负。

例如:假设机器数为8位,则其最高位是符号位,那么在整数的表示情况下,对于00101110和10010011,其真值分别为十进制数+46和-19。

机器数常采用原码和补码的形式作为其编码方式。

(1)原码

整数x的原码是指:其符号位的0或1表示x的正或负,其数值部分就是x的绝对值的二进制表示。通常用[x]原表示x的原码。

例如:假设机器数的位数是8,那么:[+17]原=00010001???[-39]原=10100111

注意:由于[+0]原=00000000,[-0]原=10000000,所以数0的原码不唯一,有“正零”和“负零”之分。

(2)反码

在反码的表示中,正数的表示方法与原码相同;负数的反码是把其原码除符号位以外的各位取反(即0变1,1变0)。通常,用[x]反表示x的反码。

例如:[+45]反=[+45]原=00101101??[-32]原=10100000???[-32]反=11011111

(3)补码

在补码的表示中,正数的表示方法与原码相同;负数的补码在在其反码的最低有效位上加1。通常用[x]补表示x的补码。

例如:[+14]补=10100100???[-36]反=11011011????[-36]补=11011100

注意1:数0的补码的表示是唯一的,即[0]补=[+0]补=[-0]补=00000000

注意2:利用公式?[x]补+[±y]补=[x±y]补??

可以把加法和减法统一成加法。(符号位和其它位上数一样运算,如果符号位上有进位,则把这个进位的1舍去不要,即不考虑“溢出”问题)。

例如:??x=6,y=2??求x-y

解:??[x]补=00000110??????[-y]补=11111110

?????? [x-y]补=00000100

另:机器数中采用定点或浮点数的方式来表示小数!(略)

??? 2.ascii码

计算机除了能处理数值外还能处理字符(指字母a、b、…、z、a、b、…、z,数字0、1、…、9,其它一些可打印显示的符号如:+、-、*、/、<、>、…)。在计算机内部,这些符号也得用二进制**来表示,目前,在国际上广泛采用的是美国标准信息交换**(american?

standard?code?for?

information?interechang),简称ascii码。

标准的ascii码中共有128(27)个字符,所以标准的ascii码采用7位二进制编码。因为其中的字符排列是有序的,其对应的ascii码也是相连的,所以我们只需要记几个关键字符的ascii码,其它可以推算。

‘0’——48????‘a’——65??????‘a’——97

注:标准的ascii码能表示的字符较少,于是在其基础上又设计了一种扩充的ascii码,采用的是8位二进制编码,可以表示256个字符。

??? 3.bcd码

十进制数在键盘输入和打印、显示输出时往往是将各个数字以ascii码来表示的。但是在计算机内运算时,是以二进制形式进行的。为了便于转换,设计了一些用二进制编码表示的十进制数,称为二—十进制码,即bcd码(binary?

coded?decimal)。

bcd码是用四位二进制**来表示一位十进制数。有多种bcd码:8421码、2421码、余3码、格雷码。

常用bcd码

十进制数字 8421码 2421码 余3码 格雷码

0 0000 0000 0011 0000

1 0001 0001 0100 0001

2 0010 0010 0101 0011

3 0011 0011 0110 0010

4 0100 0100 0110 0010

5 0101 0101 1000 1110

6 0110 0110 1001 1010

7 0111 0111 1010 1000

8 1000 1110 1011 1100

9 1001 1111 1100 0100

注意:bcd码表示的数形式上像二进制数,但不是真正的二进制数。

C语言输入任意数字转化为二进制,十进制,八进制,十六进制

1楼 匿名用户 include void showbit int n printf d n 2 void showoct int n printf d n 8 void showhex int n printf d n 16 int main c语言编程题 从键盘输入一个十进制数,将其转换为二进制 ...

什么是二进制、八进制、十六进制,什么是二进制,八进制,十进制,十六进制数啊

1楼 匿名用户 二进制 八进制 十进制 十六进制 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 ...

使用栈,将十进制转换成二进制,八进制或十六进制

1楼 匿名用户 public class change public static string binary int a while i 0 return s public static string octonary int a while i 0 return s public static ...