精华内容
下载资源
问答
  • 八进制小数转换为十进制小数

    千次阅读 2016-04-26 19:11:33
    #include #include ...//将进制小数(0,1)转换为十进制小数 //oct中只输入小数位. int main(void) { char oct[maxnum+1]; gets(oct); int len = strlen(oct); double res = 0; for(int i=0;i;i++) {
    #include<stdio.h>
    #include<math.h>
    #include<string.h>
    #define maxnum 42
    
    //将八进制小数(0,1)转换为十进制小数
    //oct中只输入小数位. 
    int main(void) {
    	char oct[maxnum+1];
    	gets(oct);
    	int len = strlen(oct);
    	double res = 0;
    	for(int i=0;i<len;i++) {
    		int temp = i+1;
    		res += (double)(oct[i]-'0') * pow(0.125, temp);
    	}
    	printf("%lf",res);
    }

    展开全文
  • 如将72.45转换为十进制。如图1所示来看看十进制八进制,有两种方法:直接法与间接法,先看直接的方法,与十进制转成二进制相同,咱们还是分整数部分转换和小数部分转换。 整数部分,除8取余法,每次将整数部分...

    先来看八进制如何转换成十进制。其方法与二进制转换成十进制差不多:按权相加法,即将八进制每位上的数乘以位权(如8,64,512….),然后将得出来的数再加在一起。

    如将72.45转换为十进制。如图1所示

    f31248e018a6c1b01f44daf3dbc5e111.png

    来看看十进制转八进制,有两种方法:直接法与间接法,先看直接的方法,与十进制转成二进制相同,咱们还是分整数部分转换和小数部分转换。

    整数部分,除8取余法,每次将整数部分除以8,余数为该位权上的数,商继续除以8,余数又为上一个位权上的数,然后以此类推一直下去,直到商为零,最后从最后一个余数向前排列就可以了,嗨,还是上图直观,如图2所示。

    76a8e5310b85a1d73d9c3578c0a9b1d6.png

    再看小数部分,与转二进制相同,这里是乘八取整法,也就是说小数部分乘以8,然后取整数部分,再让剩下的小数部分再乘以8,再取整数部分,……以此类推,一直乘到小数部分为零为止。例如0.13856,如图3所示。

    120777e3a5a345d43f9ee81f9df226a6.png

    小数部分乘以8,如果永远也碰不到零该怎么办?如图4所示(假设示范哦),那就根据位数要求进行“3舍4入”吧。

    a141e6cd6b1b5d9129303ffa070f07d9.png

    这个是直接的方法,还有一个间接的方法捏?就是先把十进制转换为二进制,然后再由二进制转换为8进制,例如将十进制478.0245转为八进制。

    先转为二进制为(转换方法这里就不再累述了哦,不知道的看上期介绍吧):

    (478.125)10=(111011110.001)2

    二进制再转为八进制为(转换方法这里就不再累述了哦,不知道的看上期介绍吧):

    (111011110.001)2=(736.1)8

    注意事项:

    八进制转十进制:整体顺序、小数点不变,个位乘8的0次方+十位乘8的1次方...=十进制得数,即可。小数部分从左到右乘8的负一次方开始,以此类推。

    十进制转八进制:整体顺序、小数点不变,整数部分除8,余数倒着从左向右排,小数部分乘8,整数自左向右排。

    展开全文
  • 十进制小数→→→→→二进制小数 方法:“乘2取整” 对十进制小数乘2得到的整数部分和小数部分,整数部分既是相应的二进制数码,再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分. 如此不断重复,...

    十进制小数转X进制------乘X取整

    十进制小数→→→→→二进制小数 方法:“乘2取整”

    对十进制小数乘2得到的整数部分和小数部分,整数部分既是相应的二进制数码,再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分.
    如此不断重复,直到小数部分为0或达到精度要求为止.第一次所得到为最高位,最后一次得到为最低位
    如:0.25的二进制
    0.25*2=0.5  取整是0
    0.5*2=1.0    取整是1
    即0.25的二进制为 0.01 ( 第一次所得到为最高位,最后一次得到为最低位)

    0.8125的二进制

    0.8125*2=1.625   取整是1

    0.625*2=1.25     取整是1

    0.25*2=0.5       取整是0

    0.5*2=1.0        取整是1

    即0.8125的二进制是0.1101(第一次所得到为最高位,最后一次得到为最低位)

     

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

    0.71875)10 =(0.56)8

     

    0.71875*8=5.75  取整5

    0.75*8=6.0      取整6
    即0.56

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

    (0.142578125)10=(0.248)16

     

    0.142578125*16=2.28125  取整2

    0.28125*16=4.5          取整4

    0.5*16=8.0              取整8

    即0.248

    展开全文
  • 小数进制转换器,可以进行十进制小数转化二、、十六进制
  • 在我们接触编程知识时,总会接触有关进制转换的知识,最常见的就是10进制与二进制或十六进制之间的转换,很多时候我们总会遗忘,虽然现在也出现了很多可以直接使用的网络在线的进制转换工具,但考试中,我们就要靠...

    在我们接触编程知识时,总会接触有关进制转换的知识,最常见的就是10进制与二进制或十六进制之间的转换,很多时候我们总会遗忘,虽然现在也出现了很多可以直接使用的网络在线的进制转换工具,但考试中,我们就要靠自己通过公式进行运算了。今天就跟大家分享一下有关进制转换的理论知识,大家可以通过对比从里面发现共同点,这样便于我们理解记忆。

    在进行讲解之前,我们先在下面放置一个对应表,因为在理解下面转换的时候,你可以随时查看该表。

    84a364aa15c146c2b83e27d641db24a9

    一、 十进制与二进制之间的转换

    (1) 十进制转换为二进制,分为整数部分和小数部分

    ① 整数部分

    方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。下面举例:

    例:将十进制的168转换为二进制

    得出结果 将十进制的168转换为二进制,(10101000)2

    分析:第一步,将168除以2,商84,余数为0。

    第二步,将商84除以2,商42余数为0。

    第三步,将商42除以2,商21余数为0。

    第四步,将商21除以2,商10余数为1。

    第五步,将商10除以2,商5余数为0。

    第六步,将商5除以2,商2余数为1。

    第七步,将商2除以2,商1余数为0。

    第八步,将商1除以2,商0余数为1。

    第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即10101000

    ② 小数部分

    方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分

    为零为止。如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。换句话说就是0舍1入。读数要从前面的整数读到后面的整数,下面举例:

    例1:将0.125换算为二进制

    得出结果:将0.125换算为二进制(0.001)2

    分析:第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25;

    第二步, 将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5;

    第三步, 将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0;

    第四步,读数,从第一位读起,读到最后一位,即为0.001。

    例2,将0.45转换为二进制(保留到小数点第四位)

    大家从上面步骤可以看出,当第五次做乘法时候,得到的结果是0.4,那么小数部分继续乘以2,得0.8,0.8又乘以2的,到1.6这样一直乘下去,最后不可能得到小数部分为零,因此,这个时候只好学习十进制的方法进行四舍五入了,但是二进制只有0和1两个,于是就出现0舍1入。这个也是计算机在转换中会产生误差,但是由于保留位数很多,精度很高,所以可以忽略不计。

    那么,我们可以得出结果将0.45转换为二进制约等于0.0111

    上面介绍的方法是十进制转换为为二进制的方法,需要大家注意的是:

    1) 十进制转换为二进制,需要分成整数和小数两个部分分别转换

    2) 当转换整数时,用的除2取余法,而转换小数时候,用的是乘2取整法

    3) 注意他们的读数方向

    因此,我们从上面的方法,我们可以得出十进制数168.125转换为二进制为10101000.001,或者十进制数转换为二进制数约等于10101000.0111。

    (2) 二进制转换为十进制 不分整数和小数部分

    方法:按权相加法,即将二进制每位上的数乘以权,然后相加之和即是十进制数。例

    将二进制数101.101转换为十进制数。

    计算过程:

    (1*2º+0*2¹+1*2²).(1*2⁻¹+0*2⁻²+1*2⁻³)=5.625

    得出结果:(101.101)2=(5.625)10

    大家在做二进制转换成十进制需要注意的是

    1) 要知道二进制每位的权值

    2) 要能求出每位的值

    从最后一位开始算,依次列为第0、1、2...位 (注意是从第0位开始数的,而不是1)

    第n位的数(0或1)乘以2的n次方

    得到的结果相加就是答案

    二、八进制与十进制的转换

    (1)十进制转换为八进制

    十进制转换成八进制有两种方法:

    1)间接法:先将十进制转换成二进制,然后将二进制又转换成八进制

    2)直接法:前面我们讲过,八进制是由二进制衍生而来的,因此我们可以采用与十进制转换为二进制相类似的方法,还是整数部分的转换和小数部分的转换,下面来具体讲解一下:

    ①整数部分

    方法:除8取余法,即每次将整数部分除以8,余数为该位权上的数,而商继续除以8,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数起,一直到最前面的一个余数。

    ②小数部分

    方法:乘8取整法,即将小数部分乘以8,然后取整数部分,剩下的小数部分继续乘以8,然后取整数部分,剩下的小数部分又乘以8,一直取到小数部分为零为止。如果永远不能为零,就同十进制数的四舍五入一样,暂取个名字叫3舍4入。

    例:将十进制数796.703125转换为八进制数

    解:先将这个数字分为整数部分796和小数部分0.703125

    整数部分

    796除8商99余数4,取4

    99除8商12余数3,取3

    12除8商1余数4,取4

    1除8除不开,取1

    从下往上读,整数部分为:1434

    小数部分

    0.703125*8=5.625 取5

    0.625*8=5 取5

    小数部分从上往下读,为:55

    因此,得到结果十进制796.703125转换八进制为1434.55

    上面的方法大家可以验证一下,你可以先将十进制转换,然后在转换为八进制,这样看得到的结果是否一样

    (2)八进制转换为十进制

    方法:按权相加法,即将八进制每位上的数乘以位权,然后相加之和即是十进制数。

    例:①将八进制数67.35转换为十进制

    三、十六进制与十进制的转换

    十六进制与八进制有很多相似之处,大家可以参照上面八进制与十进制的转换自己试试这两个进制之间的转换。 即把上面对应的8变为16进行运算。

    四、 二进制与八进制之间的转换

    首先,我们需要了解一个数学关系,即2³=8,2⁴=16,而八进制和十六进制是用这关系衍生而来的,即用三位二进制表示一位八进制,用四位二进制表示一位十六进制数。

    接着,记住4个数字8、4、2、1(2³=8、2²=4、2¹=2、2º=1)。现在我们来练习二进制与八进制之间的转换。

    (1) 二进制转换为八进制

    方法:取三合一法,即从二进制的小数点为分界点,向左(向右)每三位取成一位,接着将这三位二进制按权相加(如果熟练了最上面我们分享的表格,我们就可以直接读出对应的数字),得到的数就是一位八位二进制数,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的八进制数。如果向左(向右)取三位后,取到最高(最低)位时候,如果无法凑足三位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足三位。例

    ①将二进制数101110.101转换为八进制

    从小数点向左每隔三位读取

    二进制110对应6

    二进制101对应5

    所以整数部分是:56

    从小数点向右每隔三位读取

    二进制101对应5

    小数部分为:0.5

    得到结果:将101110.101转换为八进制为56.5

    ② 将二进制数1101.1转换为八进制

    这个就简写了,看看你能看懂了吗?

    101对应5

    001对应1

    100对应4

    得到结果:将1101.1转换为八进制为15.4

    ③再来一个例子(11001.101)(二)

    整数部分: 从后往前每三位一组,缺位处有0填补,然后按十进制方法进行转化, 则有:

    001=1

    011=3

    然后我们将结果按从下往上的顺序书写就是:31,那么这个31就是二进制11001的八进制形式

    小数部分: 从前往后每三位一组,缺位处有0填补,然后按十进制方法进行转化, 则有:

    101=5

    然后我们将结果部分按从上往下的顺序书写就是:5,那么这个5就是二进制0.625的八进制形式

    所以:(11001.101)(二)=(31.5)(八)

    (2) 将八进制转换为二进制

    方法:取一分三法,即将一位八进制数分解成三位二进制数,用三位二进制按权相加去凑这位八进制数(其实,熟记了表格内的内容后,可以一眼就读出来了),小数点位置照旧。例:

    ① 将八进制数67.54转换为二进制

    6对应110

    7对应111

    5对应101

    4对应100

    因此,将八进制数67.54转换为二进制数为110111.101100,即110111.1011

    大家从上面这道题可以看出,计算八进制转换为二进制

    首先,将八进制按照从左到右,每位展开为三位,小数点位置不变

    然后,按每位展开为2²,2¹,2º(即4、2、1)三位去做凑数,即a×2²+ b×2¹ +c×2º=该位上的数(a=1或者a=0,b=1或者b=0,c=1或者c=0),将abc排列就是该位的二进制数

    接着,将每位上转换成二进制数按顺序排列

    最后,就得到了八进制转换成二进制的数字。

    以上的方法就是二进制与八进制的互换,大家在做题的时候需要注意的是

    1) 他们之间的互换是以一位与三位转换,这个有别于二进制与十进制转换

    2) 大家在做添0和去0的时候要注意,是在小数点最左边或者小数点的最右边(即整数的最高位和小数的最低位)才能添0或者去0,否则将产生错误

    再举个例子吧:(31.5)(八)

    整数部分:从后往前每一位按十进制转化方式转化为三位二进制数,缺位处用0补充 则有:

    1---->1---->001

    3---->101

    然后我们将结果按从下往上的顺序书写就是:11001,那么这个11001就是八进制31的二进制形式

    说明,关于十进制的转化方式我这里就不再说了,上一篇文章我已经讲解了!

    小数部分:从前往后每一位按十进制转化方式转化为三位二进制数,缺位处用0补充 则有:

    5---->101

    然后我们将结果按从下往上的顺序书写就是:101,那么这个101就是八进制5的二进制形式

    所以:(31.5)(八)=(11001.101)(二)

    五、 二进制与十六进制的转换

    方法:与二进制与八进制转换相似,只不过是一位(十六)与四位(二进制)的转换,下面具体讲解

    (1) 二进制转换为十六进制

    方法:取四合一法,即从二进制的小数点为分界点,向左(向右)每四位取成一位,接着将这四位二进制按权相加,得到的数就是一位十六位二进制数,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的十六进制数。如果向左(向右)取四位后,取到最高(最低)位时候,如果无法凑足四位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足四位。

    ①例:将二进制11101001.1011转换为十六进制

    从小数点开始向左取四位读数

    1001对应9

    1110对应16

    整数部分为169,注意了16在16进制中写为E,所以是E9(看上面的表就懂了)

    从小数点开始向右取四位读数

    1011对应11,注意了11在16进制中写为B

    得到结果:将二进制11101001.1011转换为十六进制为E9.B

    ② 例:将101011.101转换为十六进制

    因此得到结果:将二进制101011.101转换为十六进制为2B.A

    (2)将十六进制转换为二进制

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

    ①将十六进制6E.2转换为二进制数

    因此得到结果:将十六进制6E.2转换为二进制为01101110.0010即110110.001

    再举例:

    (19.A)(十六)

    整数部分:从后往前每位按十进制转换成四位二进制数,缺位处用0补充 则有:

    9---->1001

    1---->0001(相当于1)

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

    方法:一般不能互相直接转换,一般是将八进制(或十六进制)转换为二进制,然后再将二进制转换为十六进制(或八进制),小数点位置不变。那么相应的转换请参照上面二进制与八进制的转换和二进制与十六进制的转换。

    如果我们能够熟练记住表格的内容,可以很快捷的进行计算。 要注意,十进制转换为其余三种进制之间,要分为整数部分和小数部分,最后就是小数点的位置。熟能生巧,希望大家多多练习哦。我在我的博客上也发表了这篇文章,并且在下面附上了转换工具,想要练习的朋友,可以用工具直接进行验证哦,点击文章下面的更多可以看到在线工具。


    展开全文
  • 二进制、八进制十进制、十六进制之间转换一、十进制与二进制之间的转换(1)十进制转换为二进制,分为整数部分和小数部分①整数部分方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,...
  • 十进制转换为二进制、八进制、十六进制2.1十进制转换为二进制整数部分:整数部分除2取余数,再取倒序小数部分:小数部分乘2取整,再顺序取小数部分为零时,即为乘完或者按题目要求精度要求取...
  • 八进制与二进制3.1对应关系3.2举例一:八进制56转换为二进制3.3举例二:二进制100111010 转换为八进制4.八进制与十进制4.1对应关系+举例一:八进制1111转换为十进制4.2举例二:十进制64转换为八进制5.十六进制3333与...
  • 如将72.45转换为十进制。如图1所示来看看十进制八进制,有两种方法:直接法与间接法,先看直接的方法,与十进制转成二进制相同,咱们还是分整数部分转换和小数部分转换。 整数部分,除8取余法,每次将整数部分...
  • 将二进制、八进制、十六进制转换为十进制 二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。 假设当前数字是N进制,那么: 对于整数部分,从右往左看,第i位的位权...
  • 如将72.45转换为十进制。如图1所示 来看看十进制八进制,有两种方法:直接法与间接法,先看直接的方法,与十进制转成二进制相同,咱们还是分整数部分转换和小数部分转换。 整数部分,除8取余法,每次将整数部分...
  • 计算后的结果又由二进制转换成文字、整数、小数等,这都由操作系统自动完成,并不需要人们手工去做,想要了解数据在计算机内的存储方式,就必须了解二进制(还有八进制/十六进制)。人们通常采用的数制有...
  • 二进制、八进制和十六进制转化为十进制: 二进制转化为十进制:print(int("111",2)) 输出7 八进制转化为十进制:print(int("11",8)) 输出9 十六进制转化为十进制:print(int("...
  • 学习视频9节课征服「字符编码」-1-字符、字符集、字符编号与字符编码(基础课)-周华健的在线视频教程​edu.csdn.net二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”...
  • 两题搞定进制转换(1)二进制转八进制和十六进制(2)十进制转二进制数注意!!! 1.进位计数法       所谓进位计数法是一种计数方法,咱们最常用的莫过于十进制了,除此之外还有...
  • 将二进制、八进制、十六进制转换为十进制二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。假设当前数字是 N 进制,那么:对于整数部分,从右往左看,第 i 位的位权...
  • 算法:带小数十进制转换为八进制
  • 将二进制、八进制、十六进制转换为十进制二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。假设当前数字是N进制,那么:对于整数部分,从右往左看,第 i 位的位权等于...
  • 将二进制、八进制、十六进制转换为十进制 二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。 假设当前数字是 N 进制,那么: 对于整数部分,从右往左看,第 i 位的...
  • 十进制小数转换成二进制小数采用 “乘2取整,顺序排列” 法。 1.2 十进制转八进制 十进制转八进制和二进制方法思路一样。 1.3 十进制转十六进制 十进制转十六进制和二进制方法思路一样。 ** 2.R进制转十进制 2.1 二...
  • 十进制八进制转换方法

    万次阅读 2020-03-23 14:57:59
    2.直接法:前面我们讲过,八进制是由二进制衍生而来的,因此我们可以采用与十进制转换为二进制相类似的方法,分为整数部分的转换和小数部分的转换: 整数部分方法:除8取余法,即每次将整数部分除以8,余数为该位权...
  • 提示:各类进制在实际中表示 十进制:D(Decimal) 二进制:B(Binary) 八进制:O(Octal) 十六进制:H(Hexadecimal) ...1、非十进制十进制转换 1.1、基本原则: 按权展开法,即把各数位乘权的i次方后相加 ...
  • 1.位,单位是bit,也称为二进制位,是计算机内部数据...举个例子(二进制转换为十进制):整数部分从左至右为2的从0开始的幂次方,小数部分为2的从-1开始的幂次方;如下图所示:3.十进制转换为二进制、八进制和十六...
  • 将二进制、八进制、十六进制转换为十进制 二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。 假设当前数字是N进制,那么: 对于整数部分,从右往左看,第i位的位权...
  • 一、什么是进位计数制数制也称计数制,是指用一组...常用进位计数制:1、十进制(Decimalnotation),有10个基数:0~~9,逢十进一;2、二进制(Binarynotation),有2个基数:0~~1,逢二进一;3、八进制(Octalnotation...
  • 对于一个十进制的数,转化二进制,对整数部分进行除二处理,如十进制数10: 10/2=5 余0 5/2=2 余1 2/2=1 余0 1/2=0 余1 对于整数要倒着取余数,所以十的二进制就是1010B(B表示二进制)。 对于小数,如0.25: 0.25×...
  • 十进制八进制互相转换

    千次阅读 2020-07-23 20:50:03
    一、十进制八进制十进制转二进制方法相似,用十进制数除以8取余数,商再除以8,直到商为0,余数由下到上依次排列即可,如136 136÷8=17 余0 17÷8=2 余1 2÷8=0 余2 所以八进制210 再看小数部分,与转二...
  • 例如:常用的十进制、二进制、八进制、十六进制等。基数:在该进位制中可能用到的数码个数。(如果这里看不懂,往后看就明白了)例如:十进制的基数是10;八进制的基数是8。位权(位的权数):进位计数制中,某...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 384
精华内容 153
关键字:

十进制小数转换为八进制