进制转换计算器换

当前位置:
> > 查看文章
进制转换教程
进制转换教程
让编程改变世界
Change the world by program
小甲鱼发觉很多鱼油无论在学习《零基础入门学习C语言》还是《零基础学习汇编语言》视频的过程中,都曾经遇到过进制之间如何转换的疑问。
很多鱼油在论坛提出相关问题,小甲鱼每天“哗啦哗啦”“噼啪噼啪”地回答。。。。。
后来发觉越来越多的朋友问起同样的问题,所以小甲鱼觉得还是做个简单是视频分享下吧!
小甲鱼在干啥
如果您觉得小甲鱼的视频能够给您带来知识和快乐,您可以选择赞助我们,让我们可以持续为您推出更多精彩的原创编程教学^_^
手机用户打开支付宝钱包,扫描下方支付宝二维码即可:
电脑用户点击下方按钮即可跳转至支付宝转账页面:
感谢您对我们发展的支持和认可!
更多新鲜事儿
加载中……您所在的位置: &
进制转换算法是怎么算
时间: 12:12
编辑:drag0n
来源:下载吧
进制转换,在高速发展的现代社会,计算机浩浩荡荡地成为了人们生活中不可缺少的一部分,帮助人们解决通信,联络,互动等各方面的问题。今天我就给大家讲讲与计算机甚至日常生活有密切相关的“进制转换”问题。正数进制转换算法:
我们以(25.625)(十)为例讲解一下进制之间的转化问题。
十进制---&二进制
对于整数部分,用被除数反复除以2,除第一次外,每次除以2均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。
十进制转,N进制。
对于小数部分,采用连续乘以基数2,并依次取出的整数部分,直至结果的小数部分为0为止。故该法称“乘基取整法”。
给你一个十进制,比如:6,如果将它转换成二进制数呢?
10进制数转换成二进制数,这是一个连续除以2的过程:
把要转换的数,除以2,得到商和余数,
将商继续除以2,直到商为0。最后将所有余数倒序排列,得到数就是转换结果。
听起来有些糊涂?结合例子来说明。比如要转换6为二进制数。
“把要转换的数,除以2,得到商和余数”。
十转二示意图
要转换的数是6, 6 ÷ 2,得到商是3,余数是0。
“将商继续除以2,直到商为0……”
现在商是3,还不是0,所以继续除以2。
那就: 3 ÷ 2, 得到商是1,余数是1。
“将商继续除以2,直到商为0……”
现在商是1,还不是0,所以继续除以2。
那就: 1 ÷ 2, 得到商是0,余数是1
“将商继续除以2,直到商为0……最后将所有余数倒序排列”
好极!现在商已经是0。
我们三次计算依次得到余数分别是:0、1、1,将所有余数倒序排列,那就是:110了!
6转换成二进制,结果是110。
把上面的一段改成用表格来表示,则为:
&被除数&计算过程&商&&&余数&6&6/2&3&0&3&3/2&1&1&1&1/2&0&1
(在计算机中,÷用 / 来表示)
二进制---&十进制
二进制数转换为十进制数
二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……
所以,设有一个二进制数:,转换为10进制为:
下面是竖式:
换算成十进制
第0位 0 * 20 = 0
第1位 0 * 21 = 0
第2位 1 * 22 = 4
第3位 0 * 23 = 0
第4位 0 * 24 = 0
第5位 1 * 25 = 32
第6位 1 * 26 = 64
第7位 0 * 27 = 0
公式:第N位2(N)
---------------------------
用横式计算为:
0 * 20 + 0 * 21 + 1 * 22 + 0 * 23 + 0 * 24 + 1 * 25 + 1* 26 + 0 * 27 = 100
0乘以多少都是0,所以我们也可以直接跳过值为0的位:
1 * 22 + 1 * 25 +1*26 = 100
十进制---&八进制
10进制数转换成8进制的方法,和转换为2进制的方法类似,唯一变化:除数由2变成8。
来看一个例子,如何将十进制数120转换成八进制数。
用表格表示:
被除数&计算过程&商&余数
120&&&&& &120/8&&&&15& 0
15&&&&&&&& 15/8&&&& &1& &7
1&&&&&&&&&& 1/8&&&&&&&0& &1
120转换为8进制,结果为:170。
八进制---&十进制
八进制就是逢8进1。
八进制数采用 0~7这八数来表达一个数。
八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方……
所以,设有一个八进制数:1507,转换为十进制为:
用竖式表示:
1507换算成十进制。
第0位 7 * 80 = 7
第1位 0 * 81 = 0
第2位 5 * 82 = 320
第3位 1 * 83 = 512
--------------------------
同样,我们也可以用横式直接计算:
7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839
结果是,八进制数 1507 转换成十进制数为 839
十进制---&十六进制
10进制数转换成16进制的方法,和转换为2进制的方法类似,唯一变化:除数由2变成16。
同样是120,转换成16进制则为:
被除数&计算过程&商&余数
120&&&&&& 120/16&& 7&& 8
7&&&&&&&&&& &7/16&&& &0&& 7
120转换为16进制,结果为:78。
十六进制---&十进制
16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。字母不区分大小写。
十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……
所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。
假设有一个十六进数 2AF5, 那么如何换算成10进制呢?
用竖式计算:
2AF5换算成10进制:
第0位: 5 * 160 = 5
第1位: F * 161 = 240
第2位: A * 162 = 2560
第3位: 2 * 163 = 8192
-------------------------------------
直接计算就是:
5 * 160 + F * 161 + A * 162 + 2 * 163 = 10997
(别忘了,在上面的计算中,A表示10,而F表示15)
现在可以看出,所有进制换算成10进制,关键在于各自的权值不同。
假设有人问你,十进数 1234 为什么是 一千二百三十四?你尽可以给他这么一个算式:
1234 = 1 * 103 + 2 * 102 + 3 * 101 + 4 * 100
二进制---&八进制
()(二)
整数部分:[1]从后往前每三位一组,缺位处用0填补,然后按十进制方法进行转化, 则有:
然后我们将结果按从下往上的顺序书写就是:31,那么这个31就是二进制11001的八进制形式
小数部分: 从前往后每三位一组,缺位处用0填补,然后按十进制方法进行转化, 则有:
然后我们将结果部分按从上往下的顺序书写就是:5,那么这个5就是二进制0.101的八进制形式
所以:(=(31.5)8
八进制---&二进制
(31.5)(八)
整数部分:从后往前每一位按十进制转化方式转化为三位二进制数,缺位处用0补充 则有:
1----&1----&001
3----&11
然后我们将结果按从下往上的顺序书写就是:11001,那么这个11001就是八进制31的二进制形式
说明,关于十进制的转化方式我这里就不再说了,上一篇文章我已经讲解了!
小数部分:从前往后每一位按十进制转化方式转化为三位二进制数,缺位处用0补充 则有:
5----&101
然后我们将结果按从下往上的顺序书写就是:101,那么这个101就是八进制5的二进制形式
所以:(31.5)8=(
十六进制&---&二进制
二进制和十六进制的互相转换比较重要。不过这二者的转换却不用计算,每个C,C++程序员都能做到看见二进制数,直接就能转换为十六进制数,反之亦然。
我们也一样,只要学完这一小节,就能做到。
首先我们来看一个二进制数:1111,它是多少呢?
你可能还要这样计算:1 * 20 + 1 * 21 + 1 * 22 + 1 * 23 = 1 * 1 + 1 * 2 + 1 * 4 + 1 * 8 = 15。
然而,由于1111才4位,所以我们必须直接记住它每一位的权值,并且是从高位往低位记,:8、4、2、1。即,最高位的权值为23 = 8,然后依次是 22 = 4,21=2, 20 = 1。
记住8421,对于任意一个4位的二进制数,我们都可以很快算出它对应的10进制值。
下面列出四位二进制数xxxx 所有可能的值(中间略过部分)
下载1008次
下载1000次
下载2298次
下载969899次
下载14384次
下载1978次
下载57323次
下载218137次
下载2777次
下载14928次
热门关键字
微信扫一扫关注下载吧公共帐号进制 转换为
转换的字符:
转换的结果:
关于进制转换
  进制转换是人们利用符号来计数的方法,包含很多种数字转换。进制转换由一组数码符号和两个基本因素(“基”与“权”)构成。
随机推荐查询工具
CopyRight &
All Rights Reserved中文(简体)
中文(繁體)
中文(台灣)
中文(新加坡)
中文(香港)
明确问题。举个例子,我们现在是要将一个十进制数字15610转换成二进制数字。先将这个十进制数作为被除数写在一个倒着的“长除法”的符号里。把目标数系的基数(在这里二进制是“2”)作为除数写在这个除法符号的外面。
用这个方法将计算过程可视化会更方便理解,因为整个计算过程只需将数字一直除以2。
为了防止转换前后发生混淆,建议将数系的基数写作每个数字的脚注形式。在本例中,十进制数字的脚注为10,二进制数字的脚注为2。
进行除法运算。把结果的整数部分(商数)写在长除法符号的下面,然后把它的余数(0 或 1)写在被除数的右边。
我们现在是以2为除数,因此得出的商为偶数,则余数为0;如果得出商为奇数,则余数记为1。
3一直往下继续除,直到商为0为止。把每一个新的商数除以二,然后把余数写在被除数的右边。直到商数为0为止。
写出新的二进制数字。从最下面的余数开始,按顺序读到最上面。本例中,你会得到。这就是十进制数字156的二进制形式。或者,我们可以以脚注等式的形式表达,即:15610 = 2
活用这个方法可以将所有十进制数字转换成任何进制表达。除数为2是因为我们最终想得到的以2为基数的数(即二进制数值) 。如果最终想得到其他数系的数字,用目标数系的基数代替这个方法里二进制的基数2 就可以了。例如,要得到基数为9的数,就用9来代替2作为除数 。最终的结果就是目标数系的数字表达。
1列表。将以2为底数的幂函数以表格形式从右到左列出来。从2开始,20为1。指数加一递增。列表直至函数值最接近需要计算的十进制数字为止。比如说,我们现在要将十进制数字15610转换为二进制。
2找出最合适的幂函数值。找出小于且最接近需计算数字的幂函数值。在本例中,128是小于156的、以2为底数的幂函数值中最大的数值。所以在二进制列表128的下方写上1。然后用156减去128,得出28。
3继续计算。刚刚得出新得数28继续进行比较计算,看看哪一个幂函数值小于28。函数列表的下一个数字为64,64大于28,所以在64下方写上0。如此类推,看看那个数字小于28。
4能减的数字记为1。本例中,64和48都不能被28减,得出正数。16可以被28减,得出12。8也能被12减,得出正数,所以在16和8下方都写上1。现在的差为4。
5继续减法运算,直到列表的最后。记住在能被差减得出正数的数字下面记录为1,不能被减的数字下面记录为0。
写出二进制答案。得出的二进制数值就是列表下记录的数字排列。你应该能得出。这就是十进制数字156的二进制表达。或者,我们可以以脚注等式的形式表达,即:15610 = 2
多次反复使用这个方法,你就能基本记住以2为底数的幂函数的值。就可以跳过第一步列表的步骤了。
操作系统里安装好的计算器也可以用作十进制和二进制之间的转换,但作为一个程序员,能清楚地了解这个转换的原理会更好 。点击“查看” 然后选择 “程序员”就可以看到转换器了。
反过来转换,从二进制转换为十进制通常更容易入门。
多练习。试着转换十进制数 17810,6310,和 810。你会分别得到以下二进制答案 :2,1111112,和10002。试着转换20910,2510,和 24110,会得出2,110012,和2。
本页面已经被访问过9,135次。

我要回帖

更多关于 进制转换器 的文章

 

随机推荐