各个进制之间的转换公式(各种进制转换方法)
本文目录
- 各种进制转换方法
- 进制之间的转换方法
- 各进制转换方法
- 各种进制的转换方法
- 不同进制之间的转换方法
- 各种进制的转化怎么算
- 二进制、八进制、十进制、十六进制相互转换的方法拜托了各位 谢谢
- 什么是进制,各个进制的转换公式是什么
- 进制之间如何转换
各种进制转换方法
一)、数制
计算机中采用的是二进制,因为二进制具有运算简单,易实现且可靠,为逻辑设计提供了有利的途径、节省设备等优点,为了便于描述,又常用八、十六进制作为二进制的缩写。
一般计数都采用进位计数,其特点是:
(1)逢N进一,N是每种进位计数制表示一位数所需要的符号数目为基数。
(2)采用位置表示法,处在不同位置的数字所代表的值不同,而在固定位置上单位数字表示的值是确定的,这个固定位上的值称为权。
在计算机中:D7 D6 D5 D4 D3 D2 D1 D0 只有两种0和1
8 4 2 1
二)、数制转换
不同进位计数制之间的转换原则:不同进位计数制之间的转换是根据两个有理数如相等,则两数的整数和分数部分一定分别相等的原则进行的。也就是说,若转换前两数相等,转换后仍必须相等。
有四进制
十进制:有10个基数:0 ~~ 9 ,逢十进一
二进制:有2 个基数:0 ~~ 1 ,逢二进一
八进制:有8个基数:0 ~~ 7 ,逢八进一
十六进制:有16个基数:0 ~~ 9,A,B,C,D,E,F (A=10,B=11,C=12,D=13,E=14,F=15) ,逢十六进一
1、数的进位记数法
N=a n-1*p n-1+a n-2*p n-2+…+a2*p2+a1*p1+a0*p0
2、十进制数与P进制数之间的转换
①十进制转换成二进制:十进制整数转换成二进制整数通常采用除2取余法,小数部分乘2取整法。例如,将(30)10转换成二进制数。
将(30)10转换成二进制数
2| 30 ….0 ----最右位
2 15 ….1
2 7 ….1
2 3 ….1
1 ….1 ----最左位
∴ (30)10=(11110)2
将(30)10转换成八、十六进制数
8| 30 ……6 ------最右位
3 ------最左位
∴ (30)10 =(36)8
16| 30 …14(E)----最右位
1 ----最左位
∴ (30)10 =(1E)16
3、将P进制数转换为十进制数
把一个二进制转换成十进制采用方法:把这个二进制的最后一位乘上20,倒数第二位乘上21,……,一直到最高位乘上2n,然后将各项乘积相加的结果就它的十进制表达式。
把二进制11110转换为十进制
(11110)2=1*24+1*23+1*22+1*21+0*20=
=16+8+4+2+0
=(30)10
把一个八进制转换成十进制采用方法:把这个八进制的最后一位乘上80,倒数第二位乘上81,……,一直到最高位乘上8n,然后将各项乘积相加的结果就它的十进制表达式。
把八进制36转换为十进制
(36)8=3*81+6*80=24+6=(30)10
把一个十六进制转换成十进制采用方法:把这个十六进制的最后一位乘上160,倒数第二位乘上161,……,一直到最高位乘上16n,然后将各项乘积相加的结果就它的十进制表达式。
把十六制1E转换为十进制
(1E)16=1*161+14*160=16+14=(30)10
3、二进制转换成八进制数
(1)二进制数转换成八进制数:对于整数,从低位到高位将二进制数的每三位分为一组,若不够三位时,在高位左面添0,补足三位,然后将每三位二进制数用一位八进制数替换,小数部分从小数点开始,自左向右每三位一组进行转换即可完成。例如:
将二进制数1101001转换成八进制数,则
(001 101 001)2
| | |
( 1 5 1)8
( 1101001)2=(151)8
(2)八进制数转换成二进制数:只要将每位八进制数用三位二进制数替换,即可完成转换,例如,把八进制数(643.503)8,转换成二进制数,则
(6 4 3 . 5 0 3)8
| | | | | |
(110 100 011 . 101 000 011)2
(643.503)8=(110100011.101000011)2
4、二进制与十六进制之间的转换
(1)二进制数转换成十六进制数:由于2的4次方=16,所以依照二进制与八进制的转换方法,将二进制数的每四位用一个十六进制数码来表示,整数部分以小数点为界点从右往左每四位一组转换,小数部分从小数点开始自左向右每四位一组进行转换。
(2)十六进制转换成二进制数
如将十六进制数转换成二进制数,只要将每一位十六进制数用四位相应的二进制数表示,即可完成转换。
例如:将(163.5B)16转换成二进制数,则
( 1 6 3 . 5 B )16
| | | | |
(0001 0110 0011. 0101 1011 )2
(163.5B)16=(101100011.01011011)2
进制之间的转换方法
计算机中数的表示方法--二进制
1. 二进制数的运算
电子计算机一般采用二进制数。二进制数只有0和1两个基本数字,容易在电气元件中实现。
二进制数的运算公式:
0+0=0 0×0=0
0+1=1 0×1=0
1+0=1 1×0=0
1+1=10 1×1=1
2.十进制和二进制间的转换
(1) 十进制数转换成二进制
将十进制整数转换成二进制整数时,只要将它一次一次地被2除,得到的余数从最后一个余数读起)就是二进制表示的数。
2) 二进制数转换成十进制数
将一个二进制数的整数转换成十进制数,只要将按权展开。
例:11011=1*24(2的4次方)+1*23(2的3次方)+0*22(2的2次方)+1*21(2的1次方)+1*20(2的0次方)=27
3. 不同进制数的转换
二进制数和八进制数互换:二进制数转换成八进制数时,只要从小数点位置开始,向左或向右每三位二进制划分为一组(不足三位时可补0),然后写出每一组二进制数所对应的八进制数码即可。
例:将二进制数(10110001.111)转换成八进制数:
010 110 001. 111
2 6 1 7
即二进制数(10110001.111)转换成八进制数是(261.7)。反过来,将每位八进制数分别用三位二进制数表示,就可完成八进制数和二进制数的转换。
二进制数和十六进制数互换:二进制数转换成十六进制数时,只要从小数点位置开始,向左或向右每四位二进制划分为一组(不足四位时可补0),然后写出每一组二进制数所对应的十六进制数码即可。
例:将二进制数(11011100110.1101)转换成十六进制数:
0110 1110 0110. 1101
6 E 6 D
即二进制数(11011100110.1101)转换成十六进制数是(6E6.D)。反过来,将每位十六进制数分别用三位二进制数表示,就可完成十六进制数和二进制数的转换。
八进制数、十六进制数和十进制数的转换:这三者转换时,可把二进制数作为媒介,先把代转换的数转换成二进制数,然后将二进制数转换成要求转换的数制形式。
各进制转换方法
下面只说明整数的转换方法。
①十进制转换为n进制:
反复除以n,直到商为0,把余数从后往前连在一起,就可以了。如:101转换为7进制数:
101/7=14……3
14/7=2……0
2/7=0……2
结果101的七进制数是203。
②n进制转换为十进制:
从左到右,各位按照权重n^(位数-1)计算和即可。如3进制的2012转换为十进制:
2×3³+0×3²+1×3+2=54+3+2=59
结果三进制2012的十进制数是59。
③m进制与n进制的转换,一般需要用十进制数做中间跳板,先把m进制转换为十进制,再把十进制转换为n进制。
③有些特殊的进制转换,不需要用十进制做跳板,直接转换即可。如二进制、八进制、十六进制之间的转换。
有什么问题请留言。
各种进制的转换方法
各种进制之间的转换
二进制转十进制
公式为 a*2^0+b*2^1+c*2^2+......n*2^n-1
从右往左
f e d c b a
2^5 2^4 2^3 2^2 2^1 2^0
32 16 8 4 2 1
实例:101111=1*2^0+1*2^1+1*2^2+1*2^3+0*2^4+1*2^5=47
二进制转八进制
2^3=8
实例:
000 101 111
2^0+2^2= 5 2^0+2^1+2^2=7
八进制是:5 7
十六进制的包括范围有:
0~9,A(10),B(11),C(12),D(13),E(14),F(15)
二进制转十六进制
2^4=16
实例: 0001 0110 1100
2^0=1 2^1+2^2=5 2^2+2^3=12
十六进制:1 5 C
十进制转二进制
94
依次除以2,商和余数只有0和1时,从尾数依次排列
10111010
十进制转八进制
365
依次除以8,商和余数只有0和1时,从尾数依次排序
555
十进制转十六进制
依次除以16,商和余数只有0和1时,从尾数依次排序
八进制转十进制(公式同二进制转十进制)
555
实例:
5*8^0+5*8^1+5*8^2=365
十六进制转十进制(公式同二进制转十进制)
453
实例:
3*16^0+5*16^1+4*16^2=1107
不同进制之间的转换方法
10进制转2进制,除2取余。 2进制转10进制,用2的幂次方。 如二进制1110,转化成十进制,2^3 + 2^2 + 2^1 +2^0.
16进制转二进制可以4位二进制看成一个16进制数。如二进制1111_0000, 十六进制0xf0.
8进制转2进制,和16进制一样,只看3位可以了。
或者你可以先把16转成10,再转成2进制
各种进制的转化怎么算
进制转换
目录: 一、正数
1. 十 -------》 二
2. 二 -------》 十
3. 十 -------》 八
4. 八 -------》 十
6. 十六------》 十
1. 二 -------》 八
2. 八 -------》 二
3. 十六 ----》 二
4. 二 ----》 十六
二、负数
正文:
一、正数
在高速发展的现代社会,计算机浩浩荡荡地成为了人们生活中不可缺少的一部分,帮助人们解决通信,联络,互动等各方面的问题。今天我就给大家讲讲与计算机有关的“进制转换”问题。
我们以(25.625)(十)为例讲解一下进制之间的转化问题
说明:小数部份的转化计算机二级是不考的,有兴趣的人可以看一看
1. 十 -----》 二
(25.625)(十)
整数部分:
25/2=12......1
12/2=6 ......0
6/2=3 ......0
3/2=1 ......1
1/2=0 ......1
然后我们将余数按从下往上的顺序书写就是:11001,那么这个11001就是十进制25的二进制形式
小数部分:
0.625*2=1.25
0.25 *2=0.5
0.5 *2=1.0
然后我们将整数部分按从上往下的顺序书写就是:101,那么这个101就是十进制0.625的二进制形式
所以:(25.625)(十)=(11001.101)(二)
十进制转成二进制是这样:
把这个十进制数做二的整除运算,并将所得到的余数倒过来.
例如将十进制的10转为二进制是这样:
(1) 10/2,商5余0;
(2) 5/2,商2余1;
(3)2/2,商1余0;
(4)1/2,商0余1.
(5)将所得的余数侄倒过来,就是1010,所以十进制的10转化为二进制就是1010
2. 二 ----》 十
(11001.101)(二)
整数部分: 下面的出现的2(x)表示的是2的x次方的意思
1*2(4)+1*2(3)+0*2(2)+0*2(1)+1*2(0)=25
小数部分:
1*2(-1)+0*2(-2)+1*2(-3)=0.625
所以:(11001.101)(二)=(25.625)(十)
二进制转化为十进制是这样的:
这里可以用8421码的方法.这个方法是将你所要转化的二进制从右向左数,从0开始数(这个数我们叫N),在位数是1的地方停下,并将1乘以2的N次方,最后将这些1乘以2的N次方相加,就是这个二进数的十进制了.
还是举个例子吧:
求110101的十进制数.从右向左开始了
(1) 1乘以2的0次方,等于1;
(2) 1乘以2的2次方,等于4;
(3) 1乘以2的4次方,等于16;
(4) 1乘以2的5次方,等于32;
(5) 将这些结果相加:1+4+16+32=53
3. 十 ----》 八
(25.625)(十)
整数部分:
25/8=3......1
3/8 =0......3
然后我们将余数按从下往上的顺序书写就是:31,那么这个31就是十进制25的八进制形式
小数部分:
0.625*8=5
然后我们将整数部分按从上往下的顺序书写就是:5,那么这个0.5就是十进制0.625的八进制形式
所以:(25.625)(十)=(31.5)(八)
4. 八 ----》 十
(31.5)(八)
整数部分:
3*8(1)+1*8(0)=25
小数部分:
5*8(-1)=0.625
所以(31.5)(八)=(25.625)(十)
5. 十 ----》 十六
(25.625)(十)
整数部分:
25/16=1......9
1/16 =0......1
然后我们将余数按从下往上的顺序书写就是:19,那么这个19就是十进制25的十六进制形式
小数部分:
0.625*16=10(即十六进制的A或a)
然后我们将整数部分按从上往下的顺序书写就是:A,那么这个A就是十进制0.625的十六进制形式
所以:(25.625)(十)=(19.A)(十六)
6. 十六----》 十
(19.A)(十六)
整数部分:
1*16(1)+9*16(0)=25
小数部分:
10*16(-1)=0.625
所以(19.A)(十六)=(25.625)(十)
如何将带小数的二进制与八进制、十六进制数之间的转化问题
我们以(11001.101)(二)为例讲解一下进制之间的转化问题
说明:小数部份的转化计算机二级是不考的,有兴趣的人可以看一看
1. 二 ----》 八
(11001.101)(二)
整数部分: 从后往前每三位一组,缺位处用0填补,然后按十进制方法进行转化,则有:
001=1
011=3
然后我们将结果按从下往上的顺序书写就是:31,那么这个31就是二进制11001的八进制形式
小数部分: 从前往后每三位一组,缺位处用0填补,然后按十进制方法进行转化,则有:
101=5
然后我们将结果部分按从上往下的顺序书写就是:5,那么这个5就是二进制0.101的八进制形式
所以:(11001.101)(二)=(31.5)(八)
2. 八 ----》 二
(31.5)(八)
整数部分:从后往前每一位按十进制转化方式转化为三位二进制数,缺位处用0补充则有:
1----》1----》001
3----》11
然后我们将结果按从下往上的顺序书写就是:11001,那么这个11001就是八进制31的二进制形式
说明,关于十进制的转化方式我这里就不再说了,上一篇文章我已经讲解了!
小数部分:从前往后每一位按十进制转化方式转化为三位二进制数,缺位处用0补充则有:
5----》101
然后我们将结果按从下往上的顺序书写就是:101,那么这个101就是八进制5的二进制形式
所以:(31.5)(八)=(11001.101)(二)
3. 十六 ----》 二
(19.A)(十六)
整数部分:从后往前每位按十进制转换成四位二进制数,缺位处用0补充则有:
9----》1001
1----》0001(相当于1)
则结果为00011001或者11001
小数部分:从前往后每位按十进制转换成四位二进制数,缺位处用0补充则有:
A(即10)----》1010
所以:(19.A)(十六)=(11001.1010)(二)=(11001.101)(二)
4. 二 ----》 十六
(11001.101)(二)
整数部分:从后往前每四位按十进制转化方式转化为一位数,缺位处用0补充则有:
1001----》9
0001----》1
则结果为19
小数部分:从前往后每四位按十进制转化方式转化为一位数,缺位处用0补充则有:
1010----》10----》A
则结果为A
所以:(11001.101)(二)=(19.A)(十六) 二、负数
负数的进制转换稍微有些不同。
先把负数写为其补码形式(在此不议),然后再根据二进制转换其它进制的方法进行。
例:要求把-9转换为八进制形式。则有:
-9的补码为11111001。然后三位一划
001----》1
111----》157
011----》3
然后我们将结果按从下往上的顺序书写就是:31571,那么31571就是十进制数-9的八进制形式。
补充:
最近有些朋友提了这样的问题“0.8的十六进制是多少?”
我想在我的空间里已经有了详细的讲解,为什么他还要问这样的问题那
于是我就动手算了一下,发现0.8、0.6、0.2... ...一些数字在进制之间的转化
过程中确实存在麻烦。
就比如“0.8的十六进制”吧!
无论你怎么乘以16,它的余数总也乘不尽,总是余8
这可怎么办啊,我也没辙了
第二天,我请教了我的老师才知道,原来这么简单啊!
具体方法如下:
0.8*16=12.8
0.8*16=12.8
.
.
.
.
.
取每一个结果的整数部分为12既十六进制的C
如果题中要求精确到小数点后3位那结果就是0.CCC
如果题中要求精确到小数点后4位那结果就是0.CCCC
现在OK了,我想我的朋友再也不会因为进制的问题烦愁了!
下面是将十进制数转换为负R进制的公式:
N=(dmdm-1...d1d0)-R
=dm*(-R)^m+dm-1*(-R)^m-1+...+d1*(-R)^1+d0*(-R)^0
15=1*(-2)^4+0*(-2)^3+0*(-2)^2+1*(-2)^1+1*(-2)^0
=10011(-2)
其实转化成任意进制都是一样的
C程序代码:(支持负进制)
#include 《stdio.h》
#include 《math.h》
main()
{
long n,m,r;
while( scanf( “%ld%ld“,&n,&r)!=EOF){
if (abs(r)》 1 && !(n 《0 && r》 0)){
long result=;
long *p=result;
printf( “%ld=“,n);
if (n!=0){
while(n!=0){
m=n/r;*p=n-m*r;
if (*p 《0 && r 《0){
*p=*p+abs(r);m++;
}
p++;n=m;
}
for (m=p-result-1;m》=0;m--){
if (result[m]》 9)
printf( “%c“,55+result[m]);
else
printf( “%d“,result[m]);
}
}
else printf( “0“);
printf( “(base%d)n“,r);
} }
return;
}
二进制、八进制、十进制、十六进制相互转换的方法拜托了各位 谢谢
各种进制之间的转换 一、 二进制数、八进制数、十六进制数转十进制数 公式:二进制数、八进制数、十六进制数的各位数字分别乖以各自的基数的(N-1)次方,其相加之和便是相应的十进制数。个位,N=1;十位,N=2... 二进制数的基数为2,八进制数的基数为8,十六进制的基数为16;举例: 110B=1*22+1*21+0*20=4+2+0=6D 110Q=1*82+1*81+0*80=64+8+0=72D 110H=1*162+1*161+0*160=256+16+0=272D 二、 十进制数转二进制数、八进制数、十六进制数 要将十进制转为各进制的方式,只需除以各进制的权值,取得其余数,第一次的余数当个位数,第二次余数当十位数,其余依此类推,直到被除数小于权值,最后的被除数当最高位数。 1、十进制转二进制 2、十进制转八进制 如:55转为二进制 如:5621转为八进制 2|55 8|5621 27――1 个位 702 ―― 5 第一位(个位) 13――1 第二位 87 ―― 6 第二位 6――1 第三位 10 ―― 7 第三位 3――0 第四位 1 ―― 2 第四位 1――1 第五位 0 ―― 1 第五位 0——1 第六位 最后得八进制数:12765 即得110111 3、十进制数十六进制(或者先转换为2进制,再转换为16进制) 如:76521转为十六进制 16|76521 4782 ――9 第一位(个位) 298 ――14 第二位 18 ――10 第三位 1 ―― 2 第四位 0 ―― 1 第五位 最后得12ae9 三、 二进制数转换成其它数据类型 1、二进制转八进制:从小数点位置开始,整数部分向左,小数部分向右,每三位二进制为一组用一位八进制的数字来表示,不足三位的用0补足,就是一个相应八进制数的表示。 010110.001100B=26.14Q 八进制转二进制反之则可。 二进制与八进制间的关系 二进制 000 001 010 011 100 101 110 111 八进制 0 1 2 3 4 5 6 7 2、二进制转十六进制:从小数点位置开始,整数部分向左,小数部分向右,每四位二进制为一组用一位十六进制的数字来表示,不足四位的用0补足,就是一个相应十六进制数的表示。 00100110.00010100B=26.14H 二进制与十六进制的关系 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)
什么是进制,各个进制的转换公式是什么
简单说,N进制就是“逢N进1,借1当N。”
N进制转换为10进制,直接写成多项式计算就可以了,
就像 253(10进制)=2*10^2+5*10+2
253(8进制)=2*8^2+5*8+3=171(10进制)
253(16进制)=2*16^2+5*16+3=595(10进制)
110111(2进制)=1*2^5+1*2^4+0*2^3+1*2^2+1*2^1+1=55
10进制转换为N进制,那就要“除N取余”了。
如 485转换为8进制:
485/8=60........5
60/8=7........4
7/8=0........7
所以485(10进制)=745(8进制) (注意:最后的数要倒序写)
又如 4593转换为16进制:
4593/16=287..........1
287/16=17............15
17/16=1................1
1/16=0..................1
所以,4593(10进制)=11F1(16进制)(注:16进制的数需要16个数码,用0-9和A-F表示)
进制之间如何转换
二进制转化为八进制比如: 1010100101 step 1:分组 (把二进制三位一组从右到左分组,当左边的数字不足三位补上0) 001 010 100 101 step 2:替换(把分好的组,每组数字用一个八进制数字替换) 替换对应表: 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7 那么上述的数字替换相应为1 2 4 5,那么最后的值就是1245. 二进制转化为十六进制比如: 1001010101001 step 1:分组 (把二进制四位一组从右到左分组,当左边的数字不足四位补上0) 0001 0010 1010 1001 step 2:替换(把分好的组,每组数字用一个十六进制数字替换) 替换对应表: 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 a 1011 b 1100 c 1101 d 1110 e 1111 f 那么上述的数字替换相应为1 2 a 9,那么最后的值就是12a9. 二进制转化为十进制: 110101001.101 step 1: 授权(给每个二进制位授予不一样的位权,从小数点开始往左边数,分别是1,2,4,8......,也就是2的几次方,这里不好写,我就直接算出来,小数点往右边数,就是1/2 ,1/4,1/8.......,) step 2: 位权与权值相乘(将各个位的数字与位权相乘相加) +1X256+1X128+0X64+1X32+0X16+1X8+0X4+0X2+1X1+1X1/2+0X1/4+1X1/8=..十进制转化为二进制: 125.125 step 1: 分类(将整数位和小数位分为两个部分,分别求解) step 2: 整数求解(将整数位数字对二进行反向取余,一直除到商位0为止) 125 / 2 = 64 ...........1 64 / 2 = 32 ............0 32/2 = 16.............0 16/2 = 8..............0 8/2 = 4..............0 4/2 = 2...............0 2/2 = 1................0 1/2 = 0...............1 (商为0停止) 那么整数部分结果就是从下往上看余数为 10000001. step 3: 求解小数(求解小数用到的是将小数一直乘以2,依次取出每次乘以2结果的整数部分) 0.125X2=0.25 (整数部分为0,取出) 0.25X2=0.5 (整数部分为0,取出) 0.5X2=1.0 (整数部分为1,取出)最后小数部分就是001step 4:合并两部分 那最后的结果就是10000001.001至于八进制与十六进制之间的转化就是将二进制中的2换为相应的8和16.需要注意的是十六进制中有a,b,c,d,e,f的余数,而不是10,11,12,13,14,15.对于其他的也没有什么不一样的地方了。 如果我的回答得到你的满意请支持一下我朋友的网站 www.tao-money.com Thank you !!!!
更多文章:
汉字unicode排序(sqlserver 汉字默认排序是什么方式)
2024年6月26日 19:26
go开发app(go语言库是封装了windows的api吗)
2024年7月23日 14:05
python中pass的用法(python中的pass代表什么意思呢)
2024年6月14日 15:06
全免费字体商店(qq字体商城“开通会员免费领取以下字体”,在这个地方开通一个月的vip领取字体后字体的可用期是多久)
2024年7月13日 04:15
cloneable接口实现原理(在java中 clone为什么要用super.clone()方法 这里为什么要用super不是this)
2024年7月18日 05:24
random python(python怎样安装random)
2024年7月16日 18:55
repeater控件(asp.net中怎样获取repeater中的数据)
2024年7月5日 18:04
selective tool怎么卸载(如何卸载虚拟机中VMware tools)
2024年7月16日 11:37
literature怎么读英语(literature(文学)怎么读)
2024年7月19日 06:50