进制转换计算方法

进制转换计算方法
进制转换计算方法

进制转换计算方法【简单】

1.其他进制转成十进制

(1)整数

以二进制为例:100100

转成十进制从左到右乘以2的n-1次幂:1*2^5+0*2^4+0*2^3+1*2^2+0*2^1+0*2^0=36 (2)小数

以二进制为例:0.10010

转成十进制从左到右乘以2的n-1次幂:0*2^0+1*2^-1+0*2^-2+0*2^-3+1*2^-4+0*2^-5=0+0.5+0+0+0.0625+0=0.5625

其他进制数据转化方式等同

2.十进制转成其他进制

(1)整数

以二进制为例:36转成二进制

36/2=18 0

18/2=9 0

9/2=4 (1)

4/2=2 0

2/2=1 0

1/2=0 (1)

直到商为0为止,余数从右到左组合到一起即为2进制数值100100

(2)小数

以二进制为例:0.36转成二进制

0.36*2=0.72 0

0.72*2=1.44 (1)

0.44*2=0.88 0

0.88*2=1.76 (1)

0.76*2=1.52 (1)

0.52*2=1.04 (1)

直到十分位为0为止,整数位从右到左组合到一起即为2进制数值111010

其他进制数据转化方式等同。

3.其他进制之间转换要以十进制作为纽带进行转换

比如八进制转成二进制:要先把八进制转成十进制,再转成二进制

十进制数与十六进制数的转换方法

若十进制数23785转为十六进制,则用23785/16=1486余9,1486/16=92余14,92/16=5余12,5/16=0余5,十六进制中,10对应为a、11对应为b、。。。。。。、15对应为f,再将余数倒写为5ce9,则十进制23785=十六进制5ce9 十六进制数的第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 * 16^0 = 5 第1位:F * 16^1 = 240 第2位:A * 16^2 = 2560 第3位:2 * 16^3 = 8192 + ------------------------------------- 10997 直接计算就是: 5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997 二进制的1101转化成十进制 1101(2)=1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8=13 转化成十进制要从右到左用二进制的每个数去乘以2的相应次方不过次方要从0开始 十进制转二进制:用2辗转相除至结果为1 将余数和最后的1从下向上倒序写就是结果例如302 302/2 = 151 余0 151/2 = 75 余1 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 故二进制为100101110 二进制转八进制 在把二进制数转换为八进制表示形式时,对每三位二进制位进行分组,应该从小数点所在位置分别向左向右划分,若整数部分倍数不是3的倍数,可以在最高位前面补若干个0;对小数部分,当其位数不是的倍数时,在最低位后补若干个0.然后从左到右把每组的八进制码依次写出,即得转换结果. 你算一下就知道了啊比如110=2^2+2+0=6 二进制转十六进制 要将二进制转为16进制,只需将二进制的位数由右向左每四位一个单位分隔,分的不够的前边补零,用四位数的二进制数来代表一个16进制。转换表如下,括号内为十六进制 0000(0)0001 (1)0010 (2)0011 (3)0100 (4)0101 (5)0110 (6)0111 (7)1000 (8)1001 (9)1010(A)1011 (B)

计算机考试中各种进制转换的计算方法

二进制数第0位的权值是2的0次方,第1位的权值是2的1次方…… 所以,设有一个二进制数:0110 0100,转换为10进制为: 下面是竖式: 0110 0100 换算成十进制 第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 + --------------------------- 100 用横式计算为: 0 * 20 + 0 * 21 + 1 * 22 + 1 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100 0乘以多少都是0,所以我们也可以直接跳过值为0的位: 1 * 2 2 + 1 * 2 3 + 1 * 25 + 1 * 26 = 100 2.2 八进制数转换为十进制数 八进制就是逢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 + -------------------------- 839 同样,我们也可以用横式直接计算: 7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839 结果是,八进制数 1507 转换成十进制数为 839 2AF5换算成10进制: 第0位: 5 * 160 = 5 第1位: F * 161 = 240 第2位: A * 162 = 2560 第3位: 2 * 163 = 8192 +

各种进制之间转换方法

各进制转换方法(转载) 一、计算机中数的表示: 首先,要搞清楚下面3个概念 ?数码:表示数的符号 ?基:数码的个数 ?权:每一位所具有的值 请看例子: 数制十进制二进制八进制十六进制 数码0~9 0~1 0~7 0~15 基10 2 8 16 权10o,101,102,…2o,21,22,…8o,81,82,…16o,161,162,…特点逢十进一逢二进一逢八进一逢十六进一 十进制4956= 4*103+9*102 +5*101+6*10o 二进制1011=1*23+0*22 +1*21+1*2o 八进制4275=4*83+2*82 +7*81+5*8o 十六进制81AE=8*163+1*162 +10*161+14*16o

二、各种进制的转换问题 1.二、八、十六进制转换成十进制 2.十进制转换成二、八、十六进制 3.二进制、八进制的互相转换 4.二进制、十六进制的互相转换 1、二、八、十六进制转换成十进制 方法:数码乘以相应权之和 2、十进制转换成二、八、十六进制 方法:连续除以基,直至商为0,从低到高记录余数

3、二进制、八进制的互相转换 方法: ?二进制转换成八进制:从右向左,每3位一组(不足3位左补0),转换成八进制 ?八进制转换成二进制:用3位二进制数代替每一位八进制数 例(1101001)2=(001,101,001)2=(151)8 例 (246)8=(010,100,110)2=(10100110)2 4、二进制、十六进制的互相转换 方法: ?二进制转换成十六进制:从右向左,每4位一组(不足4位左补0),转换成十六进制 ?十六进制转换成二进制:用4位二进制数代替每一位十六进制数 例(11010101111101)2=(0011,0101,0111,1101)2=(357D)16 例 (4B9E)16=(0100,1011,1001,1110)2=(100101110011110)2 三、各种进制数的运算

VC6_C++计算器与进制转换工具设计步骤加代码

成都信息工程学院 面向对象程序设计开发文档 题目:计算器和进制转换工具 学院:控制工程学院 班级:自动化 学生姓名: 学号:2011 指导教师:姚 禁止除作者外他人复制上传本文档到百度文库和豆丁网这类网站!!!

二〇一二年十二月十三日 课程名称:面向对象的程序设计学院:控制工程学院班级:自动化学生姓名:学号: 2011 指导教师:

摘要 本设计实现了一个简单的计算器,该计算器不仅实现了简单的四则运算功能,还实现了三角函数计算功能,而且具有简洁大方的图文外观。此设计按照软件工程的方法进行,系统具有良好的界面和必要的交互信息,使操作人员能快捷简单地进行操作,充分降低了数字计算的难度和节约了时间。 编写一个简单的DOS窗口运行的工具,实现将任意的十进制整数转换成R进制数(R在2-16之间)。本系统开发平台为Windows 7,程序设计语言采用C++,在程序设计中,采用了结构化与面向对象两种解决问题的方法。 关键词:程序设计;计算器;MFC;按钮控件;进制转换

目录 引言 (1) 第一章概述 (2) 1.1 可行性分析 (2) 1.2 需求分析 (2) 第二章总体设计 (2) 2.1 功能说明 (2) 第三章软件设计 (3) 3.1 计算器工程创建 (3) 3.2 计算器开发步骤 (5) 3.3 进制转换工具设计步骤 (13) 结论 (18)

引言 计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除、开方、求平方等简单运算的工具。要实现计算功能,可以用VC++的知识编写程序来解决此问题。用。 在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对语法及语义分析原理的理解,并实现对命令语句的灵活应用。 本课程设计主要在运算过程中,如果通过计算器来完成,就会减少计算量,该程序即可以在简单计算器键面下进行简单运算。 在日常工作中,有时会需要对数字进行进制的转换,但是笔算往往速度慢,而且有时会计算错误,所以编译一个简单的进制转换工具能使得计算变得简单。

各种进制之间转换方法

各进制转换方法(转载)一、计算机中数的表示: 首先,要搞清楚下面3个概念 ?数码:表示数的符号 ? 基:数码的个数 ?权:每一位所具有的值

、各种进制的转换问题 1. 二、八、十六进制转换成十进制 2. 十进制转换成二、八、十六进制 3. 二进制、八进制的互相转换 4. 二进制、十六进制的互相转换 1、二、八、十六进制转换成十进制 方法:数码乘以相应权之和 例(HloJ-l/25+lx24+l/23+0/22+ h2:+h20 -(59)10 例(136)8=lx82+3x8l+6x8°=(94)10 例(1F2^)1S=1X163+15X16S +2\16] + 10/16° = (7978)10 2、十进制转换成二、八、十六进制 方法:连续除以基,直至商为0,从低到高记录余数

例把十进制数159转换成八进制数 8| 19 8辽 (159)IO =(237)8 例把十进制数59转换成二进制数 (59)IO =(111O11)2 2 余余余余余余 8 159

例把十进制数459转换成十六进制数 u | 1| C| B (459)io=(1CB)ib ' 3、二进制、八进制的互相转换 方法: *二进制转换成八进制:从右向左,每3位一组(不足3位左补0),转换成八进制*八进制转换成二进制:用3位二进制数代替每一位八进制数 例(1101001)2=(001,101,001)2=(151)8 例(246)8=(010,100,110)2=(10100110)2 4、二进制、十六进制的互相转换 方法: 二进制转换成十六进制:从右向左,每4位一组(不足4位左补0),转换成十六进制 *十六进制转换成二进制:用4位二进制数代替每一位十六进制数 例(11010101111101)2=(0011,0101,0111,1101)2=(357D)16 例(4B9E)16=(0100,1011,1001,1110)2=(100101110011110)2 三、各种进制数的运算 方法:逢满进具体计算与平时十进制的计算类似,以十六进制为例: 加法:

计算机进制转换公式

计算机进制转换公式 (1 )将二进制数转换成对应的十进制数 将二进制数转换成对应的十进制数的方法是“按权展开求和”:利用二进制数按权展开的多项式之和的表达式,取基数为 2 ,逐项相加,其和就是对应的十进制数。 例 1 :将二进制数1011.1 转换成对应的十进制 解:1011.1B=1×2 3+0×2 2+1×2 1+1×2 0+1×2 -1=8+0+2+1+0.5=11.5D (2 )将十进制数转换成对应的二进制数 将十进制数转换为对应的二进制数的方法是: 对于整数部分,用被除数反复除以2 ,除第一次外,每次除以2 均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。对于小数部分,采用连续乘以基数 2 ,并依次取出的整数部分,直至结果的小数部分为0 为止。故该法称“ 乘基取整法” 。 例:将十进制117.625D 转换成二进制数 解:整数部分:“除以2 取余,逆序输出” 小数部分: “乘以2 取整,顺序输出” 所以117.625D =1110101.101B 特别提示:将十进制数转换成其他进制数方法与次上述方法类似。 (3 )将二进制数转换为对应的八进制数 由于1 位八进制数对应3 位二进制数,所以二进制数转换成八进制数时,只要以小数点为界,整数部分向左,小数部分向右每 3 位分成一组,各组用对应的 1 位八进制数字表示,即可得到对应的八进制数值。最左最右端分组不足 3 位时,可用0 补足。 例:将1101101.10101B 转换成对应的八进制数。 解:所以,1101101.10101B =155.52Q 。 同理,用相反的方法可以将八进制数转换成对应的二进制数。 (4 )将二进制数转为对应的十六进制数 由于1 位十六进制数对应4 位二进制数,所以二进制数转换为十六进制时,只要以小数点为界,整数部分向左,小数部分向右每 4 位分成一组,各组用对应的 1 位十六进制数字表示,即可得到对应的十六进制数值。两端的分组不足 4 位时,用0 补足。 例:将1101101.10101B 转换成对应的十六进制数 解:所以1101101.10101B =6D.8AH 。 同理,用相反的方法可以将十六进制数转换成对应的二进制数。 例:将十六进制数5DF.9 转换成二进制: 例:将二进制数1100001.111 转换成十六进制: 至于其他的转换方法,如八进制到十进制,十六进制到十进制之间的转换,同样可用按权展开的多项式之和及整数部分用“ 除基取整数” 来实现的。只不过此时基数分别为8 和16 。当然,更简单实用的方法是借用二进制数做桥梁,用“ 八——二——十” 或“ 十六——二——八” 的转换方法来实现。

进制转换计算+ASCII表

一、二进制转化成其他进制 1. 二进制(BINARY)——>八进制(OCTAL) 例子1:将二进制数(10010)2转化成八进制数。 (10010)2=(010 010)2=(2 2)8=(22)8 例子2:将二进制数()2转化为八进制数。 ()2=(0. 101 010)2=(0. 5 2)8=()8 诀窍:因为每三位二进制数对应一位八进制数,所以,以小数点为界,整数位则将二进制数从右向左每3位一隔开,不足3位的在左边用0填补即可;小数位则将二进制数从左向右每3位一隔开,不足3位的在右边用0填补即可。 2. 二进制(BINARY)——>十进制(DECIMAL) 例子1:将二进制数(10010)2转化成十进制数。 (10010)2=(1x24+0x23+0x22+1x21+0x20)10=(16+0+0+2+0)10=(18) 10 例子2:将二进制数()2转化为十进制数。 ()2=(0+1x2-1+0x2-2+1x2-3+0x2-4+1x2-5)10=(0+++++)10=()10 诀窍:以小数点为界,整数位从最后一位(从右向左)开始算,依次列为第0、1、2、3………n,然后将第n位的数(0或1)乘以2的n-1次方,然后相加即可得到整数位的十进制数;小数位则从左向右开始算,依次列为第1、2、3……..n,然后将第n位的数(0或1)乘以2的-n次方,然后相加即可得到小数位的十进制数(按权相加法)。

3. 二进制(BINARY)——>十六进制(HEX) 例子1:将二进制数(10010)2转化成十六进制数。 (10010)2=(0001 0010)2=(1 2)16=(12) 16 例子2:将二进制数()2转化为十六进制数。 ()2=(0. 1010 1000)2=(0. A 8)16=()16 诀窍:因为每四位二进制数对应一位十六进制数,所以,以小数点为界,整数位则将二进制数从右向左每4位一隔开,不足4位的在左边用0填补即可;小数位则将二进制数从左向右每4位一隔开,不足4位的在右边用0填补即可。 (10010)2=(22)8=(18) 10=(12)16 ()2=()8=()10=()16 二、八进制转化成其他进制 1. 八进制(OCTAL)——>二进制(BINARY) 例子1:将八进制数(751)8转换成二进制数。 (751)8=(7 5 1)8=(111 101 001)2=(1)2 例子2:将八进制数()8转换成二进制数。 ()8=(0. 1 6)8=(0. 001 110)2=()2 诀窍:八进制转换成二进制与二进制转换成八进制相反。

各种进制转换方法

一、二进制转十进制 由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为按权相加法。 二、十进制转二进制 十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。 1. 十进制整数转换为二进制整数 十进制整数转换为二进制整数采用除2取余,逆序排列法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。 2.十进制小数转换为二进制小数 十进制小数转换成二进制小数采用乘2取整,顺序排列法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。 然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。 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 2 1.25 X 2 0.5 X 2 1.0 2.八进制与二进制的转换 例:将八进制的37.416转换成二进制数: 37 . 4 1 6 011 111 .100 001 110 即:(37.416)8 =(11111.10000111)2

(完整word版)二进制、八进制、十六进制转换方式

第六章二进制、八进制、十六进制 6.1 为什么需要八进制和十六进制? 6.2 二、八、十六进制数转换到十进制数 6.2.1 二进制数转换为十进制数 6.2.2 八进制数转换为十进制数 6.2.3 八进制数的表达方法 6.2.4 八进制数在转义符中的使用 6.2.5 十六进制数转换成十进制数 6.2.6 十六进制数的表达方法 6.2.7 十六进制数在转义符中的使用 6.3 十进制数转换到二、八、十六进制数 6.3.1 10进制数转换为2进制数 6.3.2 10进制数转换为8、16进制数 6.4 二、十六进制数互相转换 6.5 原码、反码、补码 6.6 通过调试查看变量的值 6.7 本章小结 这是一节“前不着村后不着店”的课。不同进制之间的转换纯粹是数学上的计算。不过,你不必担心会有么复杂,无非是

乘或除的计算。 生活中其实很多地方的计数方法都多少有点不同进制的影子。 比如我们最常用的10进制,其实起源于人有10个指头。如果我们的祖先始终没有摆脱手脚不分的境况,我想我们现在一定是在使用20进制。 至于二进制……没有袜子称为0只袜子,有一只袜子称为1只袜子,但若有两袜子,则我们常说的是:1双袜子。 生活中还有:七进制,比如星期。十六进制,比如小时或“一打”,六十进制,比如分钟或角度…… (该版课程的内容更新及订正均已停止) 旧版课程打包下载 ---------------------------------- [想看涵盖“面向对象”、“图形编程”、“泛型编程”…… 的“最新2008年版白话C++”课程,请点击!] (另有: 博客版) 6.1 为什么需要八进制和十六进制? 编程中,我们常用的还是10进制……必竟C/C++是高级语言。 比如:

进制转换计算

二进制、八进制、十进制与十六进制 一、进制的概念 在计算机语言中常用的进制有二进制、八进制、十进制和十六进制,十进制是最主要的表达形式。 基数:基数是指一种进制中组成的基本数字,也就是不能再进行拆分的数字。二进制是0和1;八进制是0-7;十进制是0-9;十六进制是0-9+A-F(大小写均可)。也可以这样简单记忆,假设是n进制的话,基数就是【0,n-1】的数字,基数的个数和进制值相同,二进制有两个基数,十进制有十个基数,依次类推。 运算规则:运算规则就是进位或错位规则。例如对于二进制来说,该规则是“满二进一,借一当二”;对于十进制来说,该规则是“满十进一,借一当十”。其他进制也是这样。 三、二进制转化成其他进制 1. 二进制(Binary)——>八进制(Octal) 例子:将二进制数(10010)2转化成八进制数。(10010)2=(010 010)2=(2 2)8=(22)8 将二进制数(0.1010)2转化为八进制数。(0.10101)2=(0. 101 010)2=(0. 5 2)8=(0.52)8 诀窍:因为每三位二进制数对应一位八进制数,所以,以小数点为界,整数位则将二进制数从右向左每3位一隔开,不足3位的在左边用0填补即可;小数位则将二进制数从左向右每3位一隔开,不足3位的在右边用0填补即可。 2. 二进制(Binary)——>十进制(Decimal) 例子:将二进制数(10010)2转化成十进制数。 (10010)2=(1x24+0x23+0x22+1x21+0x20)10=(16+0+0+2+0)10=(18) 10将二进制数(0.10101)2转化为十进制数。 (0.10101)2=(0+1x2-1+0x2-2+1x2-3+0x2-4+1x2-5)10=(0+0.5+0.25+0.125+0.0625+0.03125)10=(0.96875)10 诀窍:以小数点为界,整数位从最后一位(从右向左)开始算,依次列为第0、1、2、3………n,然后将第n位的数(0或1)乘以2的n-1次方,然后相加即可得到整数位的十进制数;小数位则从左向右开始算,依次列为第1、2、3……..n,然后将第n位的数(0或1)乘以2的-n次方,然后相加即可得到小数位的十进制数(按权相加法)。 3. 二进制(Binary)——>十六进制(Hex) 例子:将二进制数(10010)2转化成十六进制数。(10010)2=(0001 0010)2=(1 2)16=(12) 16将二进制数(0.1010)2转化为十六进制数。 (0.10101)2=(0. 1010 1000)2=(0. A 8)16=(0.A8)16 诀窍:因为每四位二进制数对应一位十六进制数,所以,以小数点为界,整数位则将二进制数从右向左每4位一隔开,不足4位的在左边用0填补即可;小数位则将二进制数从左向右每4位一隔开,不足4位的在右边用0填补即可。 四、八进制转化成其他进制 1. 八进制(Octal)——>二进制(Binary) 例子1:将八进制数(751)8转换成二进制数。 (751)8=(7 5 1)8=(111 101 001)2=(111101001)2 例子2:将八进制数(0.16)8转换成二进制数。 (0.16)8=(0. 1 6)8=(0. 001 110)2=(0.00111)2 诀窍:八进制转换成二进制与二进制转换成八进制相反。 2. 八进制(Octal)——>十进制(Decimal) 例子1:将八进制数(751)8转换成十进制数。 (751)8=(7x82+5x81+1x80)10=(448+40+1)10=(489)10 例子2:将八进制数(0.16)8转换成十进制数。

各种进制之间的转换方法

各种进制之间的转换方法 ⑴二进制B转换成八进制Q:以小数点为分界线,整数部分从低位到高位,小数部分从高位到低位,每3位二进制数为一组,不足3位的,小数部分在低位补0,整数部分在高位补0,然后用1位八进制的数字来表示,采用八进制数书写的二进制数,位数减少到原来的1/3。 例:◆二进制数转换成八进制数: = 110 110 . 101 100B ↓↓ ↓ ↓ 6 6 . 5 4 = ◆八进制数转换成二进制数: 3 6 . 2 4Q ↓ ↓ ↓ ↓ 011 110 . 010 100 = ◆ 低位,每4位二进制数为一组,不足4位的,小数部分在低位补0,整数部分在高位补0,然后用1位十六进制的数字来表示,采用十六进制数书写的二进制数,位数可以减少到原来的1/4。 例:◆二进制数转换成十六进制数: .100111B = 1011 0101 1010 . 1001 1100B ↓ ↓ ↓ ↓ ↓ B 5 A . 9 C = 5A ◆十六进制数转换成二进制数: = A B . F EH ↓ ↓ ↓ ↓ 1010 1011. 1111 1110 = .1111111B 先把八进制数Q转换成二进制数B,再转换成十六进制数H。 例:◆八进制数转换成十六进制数: = 111 100 000 010 . 100 101B = .100101B = 1111 0000 0010 . 1001 0100B = F 0 2 . 9 4H = ◆十六进制数转换成八进制数: = 0001 1011 . 1110B = = 011 011 . 111B = 3 3 . 7Q = ⑷二进制数B转换成十进制数D:利用二进制数B按权展开成多项式和的表达式,取基数为2,逐项相加,其和就是相应的十进制数。

计算机各种进制转换

6.1 为什么需要八进制和十六进制? 编程中,我们常用的还是10进制……必竟C/C++是高级语言。 比如: int a = 100,b = 99。 不过,因为数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题。 但,二进制数太长了。比如int 类型占用4个字节,32位。比如100,用int类型的二进制数表达将是: 0000 0000 0000 0000 0110 0100 面对这么长的数进行思考或操作,没有人会喜欢。因此,C,C++ 没有提供在代码直接写二进制数的方法。 用16进制或8进制可以解决这个问题。因为,进制越大,数的表达长度也就越短。不过,为什么偏偏是16或8进制,而不其它的,诸如9或20进制呢? 2、8、16,分别是2的1次方,3次方,4次方。这一点使得三种进制之间可以非常直接地互相转换。8进制或16进制缩短了二进制数,但保持了二进制数的表达特点。在下面的关于进制转换的课程中,你可以发现这一点。 6.2 二、八、十六进制数转换到十进制数 6.2.1 二进制数转换为十进制数 二进制数第0位的权值是2的0次方,第1位的权值是2的1次方…… 所以,设有一个二进制数:0110 0100,转换为10进制为: 下面是竖式: 0110 0100 换算成十进制 第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 + --------------------------- 100 用横式计算为: 0 * 20 + 0 * 21 + 1 * 22 + 1 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100 0乘以多少都是0,所以我们也可以直接跳过值为0的位: 1 * 2 2 + 1 * 2 3 + 1 * 25 + 1 * 26 = 100 6.2.2 八进制数转换为十进制数 八进制就是逢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 + -------------------------- 839 同样,我们也可以用横式直接计算: 7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839 结果是,八进制数 1507 转换成十进制数为 839

用Windows计算器进行小数数制转换的方法

用Win7和Win8的计算器实现小数数制转换的方法 北京师范大学珠海分校林昌华 微软Windows XP、Win7和Win8操作系统附件中的计算器只能进行整数之间的数制转换,不能进行小数之间的数制转换。Win7和Win8的计算器更是将Windows XP计算器里的二进制、八进制和十六进制计算从科学型模式搬移到了程序员模式,十进制计算仍然保留在科学型模式里。这种变化给小数之间的数制转换带来了更多的麻烦。 作者在2012年推出了利用Windows XP的计算器进行小数数制之间转换的方法。在此基础上,作者又研究出利用Win7和Win8附件中的计算器进行十进制小数与二进制、八进制和十六进制小数转换的方法。希望对有需要的读者有所帮助。 对于二进制、八进制和十六进制小数相互之间的转换,可以先将它们转换成十进制小数,然后再将十进制小数转换成相应的非十进制小数。 1.十进制小数转换成非十进制的R进制小数的数学原理和方法 首先确定作为转换目标的非十进制的R进制数(z.x)R需要保留的小数位数i。于是可以写出数学转换公式:[(z.x)D· R i ] · R-i ≈Z D ·R-i =Z R ·R-i =(z.x)R 按照上述公式揭示的数学转换原理利用计算器进行转换操作的方法如下: a)利用计算器的科学型模式,将十进制数(z.x)D乘以R i 。如果积有小数,将小数部分四 舍五入到个位,得到一个十进制整数Z D。 b)利用计算器的程序员模式,将Z D转换成R进制整数Z R。 c)将R进制整数Z R的小数点(默认在个位右侧)向左移动i位,得到转换结果(z.x)R。 1.1 将十进制小数转换成二进制小数的方法 例1.1,转换(865.1277)D→(含12位小数)B方法如下。以下的1)、2)、3)在计算器的科学型模式下操作;4)、5)、6)在计算器的程序员模式下操作;7)手动点小数点。 1)如图1.1.1,点击“查看”→“科学型”→计算212×865.1277=3543563.0592。 2)如图1.1.2,将计算结果3543563.0592减去小数0.0592。 3)如图1.1.3,点击“=”,仅保留整数3543563。鼠标右键点击计算器显示框→“复 制”。准备将十进制整数3543563粘贴到程序员模式。 4)如图1.1.4,点击“查看”→“程序员”。 5)如图1.1.5,点击“十进制”→右键点击计算器显示框→“粘贴”。将3543563粘 贴到程序员模式显示框。 6)如图 1.1.6,点击“二进制”,得到3543563转换成的二进制整数 (1101100001001000001011)B。 7)将小数点向左移动12位,即将其乘以2-12,得到最终转换结果为 (1101100001.001000001011)B。 图1.1.2 减去小数0.059

常见的进制转换方法

一:简述: 进位计数制:是人们利用符号来计数的方法。一种进位计数制包含一组数码符号和两个基本因素。 (1)数码:用不同的数字符号来表示一种数制的数值,这些数字符号称为”数码”。 (2)基:数制所使用的数码个数称为”基”。 (3)权:某数制每一位所具有的值称为”权”。 二:进制转换的理论 1、二进制数、十六进制数转换为十进制数:用按权展开法 把一个任意R进制数a n a n-1 ...a1a0 . a-1a-2...a-m 转换成十进制数,其十进制数值为每一位数字与其位权之积的和。 a n×R n+ a n-1×R n-1+…+ a1×R 1+ a0×R0+ a-1×R-1+ a-2×R-2 + …+ a-m×R-m 2、十进制转化成R进制 十进制数轮换成R进制数要分两个部分: 整数部分:除R取余数,直到商为0,得到的余数即为二进数各位的数码,余数从右到左排列(反序排列)。 小数部分:乘R取整数,得到的整数即为二进数各位的数码,整数从左到右排列(顺序排列)。 3、十六进制转化成二进制 每一位十六进制数对应二进制的四位,逐位展开。 4、二进制转化成十六进制 将二进制数从小数点开始分别向左(对二进制整数)或向右(对二进制小数)每四位组成一组,不足四位补零。 三、具体实现 1、二进制转换成十进制 任何一个二进制数的值都用它的按位权展开式表示。 例如:将二进制数(10101.11)2转换成十进制数。 (10101.11)2=1*24+0*23+1*22+0*21+1*20+1*2-1+1*2-2 =24+22+20+2-1+2-2=(21.75)10 2、十进制整理转换成二进制 将十进制整数转换成二进制整数采用“除2取倒余法”。 即将十进制整数除以2,得到一个商和一个余数;再将商除以2,又得到一个商和一个余数; 以此类推,直到商等于零为止。 每次得到的余数的倒排列,就是对应二进制数的各位数。 于是,结果是余数的倒排列,即为: (37)10=(a5a4a3a2a1a0)2=(100101)2 3、十进制小数转换成二进制小数 十进制小数转换成二进制小数是用“乘2取整法”。即用2逐次去乘十进制小数, 将每次得到的积的整数部分按各自出现的先后顺序依次排列,就得到相对应的二进制小数。 将十进制小数0.375转换成二进制小数,其过程如下:

进制转换计算器

一.功能概述 本应用是讲从数字键盘输入的某进制的数据按要求转换成其他进制的数据,以实现进制转换。本例程是基于对话框的工程,用一个对话框作为应用程序的主窗口,同时实例通过各种控件实现进制转换功能。其中,控件主要包括以下类型:编辑框,命令按钮、静态文本、群组框、单选按钮、复选框。 其中主要控件功能为: ·“输入数据”和“转换数据”编辑框,分别用于显示输入的数矩和转换的结果。 ·“转换为八进制”、“转换为十六进制”、“转换为十进制”三个命令按钮。用于将输入的数据转换为其他的进制。“重新开始” 按钮用于将输入的数据和转换的数据清空。 ·“八进制”、“十进制”、“十六进制”单选按钮对应输入数据的进制。同时为防止输入某进制下无效的按钮,对进制无效的按钮 施予静止。本实例中默认输入为十进制。 ·0-9按钮和A-F按钮做为数字键盘 ·“输入数据加进制符号”和“转换数据加进制符号” ·“数据格式显示选择”群组框中两个复选框作为一组。

应用程序实例界面 二.实现步骤 步骤一 选择file | new 命令,打开new对话框,选择project选项卡,设置工程名为Calculator,然后单击OK按钮。如下图所示:

步骤二 打开下图所示对话框,选择基本对话框,其余设置均采用默认操作,单击“完成”按钮完成整个工程的创建,如下图:

步骤三 在应用程序的主窗口的对话框资源中添加控件,并为对话框中的各个控件添加成员变量和消息响应函数。 添加成员变量和消息响应函数

步骤四 通过上述步骤完成各个控件的添加和控制,下面将对对话框进和控件进行编程,以实现目标功能 ①数字键按钮初始状态的设定。由于默认的进制为十进制,所以0~9折十个数字的默认状态是enable。因为系统的所有命令按钮的默认状态是enable,所以需要在初始化的时候将A~F的状态设置为disable。选择class view 选项卡,双击CCalculatorDig 下面的OnInitDialog()并在return钱添加如下代码: m_button_A.EnableWindow(FALSE); m_button_B.EnableWindow(FALSE); m_button_C.EnableWindow(FALSE); m_button_D.EnableWindow(FALSE); m_button_E.EnableWindow(FALSE); m_button_F.EnableWindow(FALSE); ②在程序运行过程中,数字键按钮的状态需要根据对三个单选按钮的选择而定。它们的事件函数代码分别如下: void CCalculatorDig::OnRADIOo() { char_radio='O'; value=0; m_button_8.EnableWindow(FALSE); m_button_9.EnableWindow(FALSE); m_button_A.EnableWindow(FALSE); m_button_B.EnableWindow(FALSE); m_button_C.EnableWindow(FALSE); m_button_D.EnableWindow(FALSE); m_button_E.EnableWindow(FALSE); m_button_F.EnableWindow(FALSE); } void CCalculatorDig::OnRADIOd() { char_radio='D'; value=0; m_button_8.EnableWindow(TRUE); m_button_9.EnableWindow(TRUE); m_button_A.EnableWindow(FALSE); m_button_B.EnableWindow(FALSE);

二 八 十 十六进制转换方法

二八十十六进制转换方法 学习各进制之间的转换,我们先了解些基本概念: 数码:表示数的符号。 基:数码的个数 权:每位所具有的的值 1、各进制如何转换为十进制 例:十六进制2AF5转换为十进制,由左至右乘十六进制权值后相加。5*16^0+15*16^1+10*16^2+2*16^3=5+240+2560+8192=10997 八进制76转换为十进制,同理。 6*8^0+7*8^1=6+56=62 二进制转换成1101转换成十进制 1*2^0+0*2^1+1*2^2+1*2^3=13 终上所述各进制转换为十进制的方法为,由左至右乘各进制权值后相加。 2、十进制转换成各进制 例:十进制6转换为二进制,10进制数转换成二进制数,这是一个连续除2的过程:把要转换的数,除以2,得到商和余数,将商继续

除以2,直到商为0。最后将所有余数倒序排列,得到数就是转换结果。要转换的数是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、1、1,将所有余数倒序排列,那就是:110了! 6转换成二进制,结果是110。 例十进制数120转换成八进制数。 被除数 计算过程 商 余数 120 120/8 15

15/8 1 7 1 1/8 1 120转换为8进制,结果为:170。 例10进制数转换成16进制的方法同样是120,转换成16进制则为: 被除数 计算过程 商 余数 120 120/16

进制转换算法

1.十进制 十进制使用十个数字(0、1、2、3、4、5、6、7、8、9)记数,基数为10,逢十进一。 历史上第一台电子数字计算机ENIAC是一台十进制机器,其数字以十进制表示,并以十进制形式运算。设计十进制机器比设计二进制机器复杂得多。而自然界具有两种稳定状态的组件普遍存在,如开关的开和关,电路的通和断,电压的高和低等,非常适合表示计算机中的数。设计过程简单,可靠性高。因此,现在改为二进制计算机。 2. 二进制 二进制以2为基数,只用0和1两个数字表示数,逢2进一。 二进制与遵循十进制数遵循一样的运算规则,但显得比十进制更简单。例如: (1)加法:0+0=0 0+1=1 1+0=1 1+1=0 (2)减法:0-0=0 1-1=0 1-0=1 0-1=1 (3)乘法:0*0=0 0*1=0 1*0=0 1*1=1 (4)除法:0/1=0 1/1=1,除数不能为0 二、进制转换 1.二进制与十进制数间的转换 (1)二进制转换为十进制 将每个二进制数按权展开后求和即可。请看例题: 把二进制数()2=1*22+0*21+1*20+1*2-1+0*2-2+1*2-3=()10 二进制数转换为十进制数: 二进制数第0位的权值是2的0次方,第1位的权值是2的1次方…… 所以,设有一个二进制数:0110 0100,转换为10进制为: 下面是竖式:

0110 0100 换算成十进制 第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 + --------------------------- 100 用横式计算为: 0 * 20 + 0 * 21 + 1 * 22 + 1 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100 0乘以多少都是0,所以我们也可以直接跳过值为0的位: 1 * 2 2 + 1 * 2 3 + 1 * 25 + 1 * 26 = 100

VC++计算器与进制转换工具设计

VC++计算器与进制转换工具设计 长春理工大学 电子信息工程学院 1004112班33号 李鹤男

VC++计算器与进制转换工具设计 一、总体设计 1、功能说明 VC++计算器与进制转换工具设计的设计按软件工程的方法进行,系统具有良好的界面;必要的交互信息;简约美观的效果。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。 (1)包含的功能有:加、减、乘、除运算,开方、平方,三角函数等功能。 (2)给对话框添加菜单。 (3)计算功能基本上是用系统内部函数。 (4)程序可以能自动判断输入数据的正确性,不出现多于一个小数点、以0开头等不正常现象。 (5)“A C”按钮可以清除所有已输入的数据从头计算。 二、软件设计 1、计算器工程创建 (1)打开Microsoft Visual C++ 6.0,在文件中点击新建,在弹出框内选择MFC AppWizard[exe]工程,输入工程名02exam62及其所在位置点击确定,如图1所示。 图1新建MFC AppWizard工程

(2)将弹出MFC AppWizard-step 1对话框,选择基本对话框点击完成,如图2所示。 图2基本对话框

(3)这样,MFC AppWizard就建立了一个基于对话窗口的程序框架,如图3所示。 图3基本对话窗口 2、计算器开发步骤 (1)创建控件 在资源视图ResourceView中,选择Dialog中ID为IDD_MY_DIALOG的对话框,删除对话框上已有的控件。然后利用控件工具箱,按照图4所示在该对话框上添加控件 图4Edit属性对话框 (2)各个控件的属性设置如表

相关文档
最新文档