文档库 最新最全的文档下载
当前位置:文档库 › 进制转换计算器

进制转换计算器

一.功能概述

本应用是讲从数字键盘输入的某进制的数据按要求转换成其他进制的数据,以实现进制转换。本例程是基于对话框的工程,用一个对话框作为应用程序的主窗口,同时实例通过各种控件实现进制转换功能。其中,控件主要包括以下类型:编辑框,命令按钮、静态文本、群组框、单选按钮、复选框。

其中主要控件功能为:

·“输入数据”和“转换数据”编辑框,分别用于显示输入的数矩和转换的结果。

·“转换为八进制”、“转换为十六进制”、“转换为十进制”三个命令按钮。用于将输入的数据转换为其他的进制。“重新开始”

按钮用于将输入的数据和转换的数据清空。

·“八进制”、“十进制”、“十六进制”单选按钮对应输入数据的进制。同时为防止输入某进制下无效的按钮,对进制无效的按钮施予静止。本实例中默认输入为十进制。

·0-9按钮和A-F按钮做为数字键盘

·“输入数据加进制符号”和“转换数据加进制符号”

·“数据格式显示选择”群组框中两个复选框作为一组。

应用程序实例界面

二.实现步骤

步骤一

选择file|new命令,打开new对话框,选择project选项卡,设置工程名为Calculator,然后单击OK按钮。如下图所示:

步骤二

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

步骤三

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

在已生成的IDD_CALCUATOR_DIALOG对话框中添加控件资源如下表:

添加成员变量和消息响应函数

消息响应函数如下表:

成员变量如下表:

步骤四

通过上述步骤完成各个控件的添加和控制,下面将对对话框进和控件进行编程,以实现目标功能

①数字键按钮初始状态的设定。由于默认的进制为十进制,所以0~9折十个数字的默认状

态是enable。因为系统的所有命令按钮的默认状态是enable,所以需要在初始化的时候将A~F的状态设置为disable。选择classview选项卡,双击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);

m_button_C.EnableWindow(FALSE);

m_button_D.EnableWindow(FALSE);

m_button_E.EnableWindow(FALSE);

m_button_F.EnableWindow(FALSE); }

void CCalculatorDig::OnRADIOh()

{

char_radio='H';

value=0;

m_button_8.EnableWindow(TRUE);

m_button_9.EnableWindow(TRUE);

m_button_A.EnableWindow(TRUE);

m_button_B.EnableWindow(TRUE);

m_button_C.EnableWindow(TRUE);

m_button_D.EnableWindow(TRUE);

m_button_E.EnableWindow(TRUE);

m_button_F.EnableWindow(TRUE);

}

③给数字按钮添加代码,0~7相似以0为例代码如下:

void CCalculatorDig::OnButton0()

{

// TODO: Add your control notification handler code here

int i_chekinput=m_CHECK_INPUT;//.GetState();//获取“数据输入”复选框的状态,1:表示选中

switch(char_radio)

{

case 'D':

value=value*10+0;

str.Format("%d",value);//将输入数据转化为字符串

if(i_chekinput==1)//

str=str+"d";

break;

case 'O':

value=value*8+0;

str.Format("%o",value);//将输入数据转化为字符串

if(i_chekinput==1)//

str=str+"o";

break;

case 'H':

value=value*16+0;

str.Format("%x",value);//将输入数据转化为字符串

if(i_chekinput==1)//

str=str+"H";

break;

}

m_inputedit=str;

UpdateData(FALSE);

}

④8,9不考虑八进制输入一8为例代码如下:

void CCalculatorDig::OnButton8()

{

int i_chekinput=m_CHECK_INPUT;//.GetState();//获取“数据输入”复选框的状态,1:表示选中

switch(char_radio)

{

case 'D':

value=value*10+8;

str.Format("%d",value);//将输入数据转化为字符串

if(i_chekinput==0)//

str=str+"D";

break;

case 'H':

value=value*16+8;

str.Format("%x",value);//将输入数据转化为字符串

if(i_chekinput==0)//

str=str+"H";

break;

}

m_inputedit=str;

UpdateData(FALSE);

// TODO: Add your control notification handler code here

}

⑤A~F以A为例代码如下:

void CCalculatorDig::OnButtonA()

{

int i_chekinput=m_CHECK_INPUT;//.GetState();//获取“数据输入”复选框的状态,1:表示选中

value=value*16+0x0A;

str.Format("%x",value);//将输入数据转化为字符串

if(i_chekinput==0)//

str=str+"H";// TODO: Add your control notification handler code here

}

⑥三个转换按钮事件的编写代码如下:

void CCalculatorDig::OnBUTTONtod()

{

// TODO: Add your control notification handler code here

int i_checkoutput=m_CHECK_OUTPUT;//.GetState();

str.Format("%d",value);

if(i_checkoutput==1)

str=str+"D";

m_outpuedit=str;

UpdateData(FALSE);//

}

void CCalculatorDig::OnBUTTONtoh()

{

int i_checkoutput=m_CHECK_OUTPUT;//.GetState();

str.Format("%0x",value);

if(i_checkoutput==0)

str=str+"h";

m_outpuedit=str;

UpdateData(FALSE);// TODO: Add your control notification handler code here }

void CCalculatorDig::OnBUTTONtoo()

{

int i_checkoutput=m_CHECK_OUTPUT;//.GetState();

str.Format("%o",value);

if(i_checkoutput==0)

str=str+"o";

m_outpuedit=str;

UpdateData(FALSE);

// TODO: Add your control notification handler code here

}

上述代码中str为全局变量,把输入的数据转换为CString类型的字符串以供显示。

⑦“重新开始”代码如下:

void CMyDlg::OnBUTTONreset()

{

m_inputedit=" ";

m_outpuedit=" ";

value=0;

UpdateData(FALSE);

}

步骤五

保存工程,编译,连接,运行程序。

我们通过一个简单的实例,介绍了各种常用控件的使用方法。控件是运行Windows应用程序开发的常用工具。同学们在学习本例之后,知道如何定义控件变量,如何调用控件的方法,以及如何定义控件的事件驱动函数等,进一步掌握控件在visualc++程序开发中的使用。

小结

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

二进制数第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 +

计算器使用方法

内置的计算器每个键的使用方法 INV 是什么意思。 设置 “sin” 、 “cos” 、 “tan” 、 “PI” 、 “x^y” 、 “x^2” 、 “x^3” 、 “ln” 、 “log” 、 “Ave” 、 “Sum” 和 “s” 的反函 数。完成一次计算后自动关闭反函数功能。 HYP 是什么意思。 设置 “sin” 、 “cos”

“tan” 的双曲函数。完成一次计算后自动关闭双曲函数功能。 sta 是什么意思。 计算显示数 字的正 切。若要 计算反正 切,请 使用 “Inv”+“tan” 。若 要计算双 曲正切 ,请使用 “Hyp”+“tan” 。若要计算反双曲正切,请使用 “Inv”+“Hyp”+“tan” 。 “tan” 只能用于十进制数字系 统。 AVE 是什么意思。 计算 “ 统计框 ” 对话框中显示数值的平均值。若要计算平均方值,请使用“Inv”+“Ave” 。只有先单 击 “Sta”

,该按钮才可用。 sum 是什么意思。 计算 “ 统计框 ” 对话框中显示数值的总和。若要计算平方和,请使用“Inv”+“Sum” 。只有先单击 “Sta” ,该按钮才可用。 DAT 是什么意思。 在 “ 统计框 ” 对话框内输入显示的数字。只有先单击 “Sta” ,该按钮才可用。 十进制 将显示数字转换为十进制数字系统。 度数 在十进制模式下将三角函数输入设置为度数。

DMS 是什么意思。 将显示数字转换为度 - 分 - 秒格式(假设显示数字是用度数表示的)。若要将显示数字转换为用度 数表示的格式(假设显示数字是用度 - 分 - 秒格式表示的) ,请使用 “Inv”+“dms” 。 dms 只能用于 十进制数字系统。 F-E 是什么意思。打开或关闭科学计数法。大于 10^32 的数总是以指数形式表示。 F-E 只能用 于十进制数字系统 表描述了计算器的功能: 按钮 功能

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

计算器用法

计算器的用法 C 清除当前的计算。 CE 清除显示数字。 按钮功能 % 按百分比的形式显示乘积结果。输入一个数,单击“*”,输入第二个数,然后单击“%”。例如,50 * 25% 将显示为12.5。也可执行带百分数的运算。输入一个数,单击运算符(“+”、“-”、“*”或“/”),输入第二个数,单击“%”,然后单击“=”。例如,50 + 25%(指的是50 的25%)= 62.5。 ( 开始括号的新层。当前的层数显示在“)”按钮上方的框中。括号的最多层数为25。 ) 结束括号的当前层。 * 乘法。 + 加法。 +/- 改变显示数字的符号。 - 减法。 . 插入小数点。 / 除法。 0–9 将此数字置于计算器的显示区。 1/x 计算显示数字的倒数。 = 对上两个数字执行任意运算。若要重复上一次的运算,请再次单击“=”。 A–F 在数值中输入选中字母。只有在十六进制模式为开启状态时该按钮才可用。 And 计算按位AND。逻辑运算符在执行任何按位运算时将截断数字的小数部分。 Ave 计算“统计框”对话框中显示数值的平均值。若要计算平均方值,请使用“Inv”+“Ave”。只有先单击“Sta”,该按钮才可用。 Backspace 删除当前显示数字的最后一位。

站将显示数字转换为二进制数字系统。最大的无符号二进制数值是将64 位全都设置为1。 C 清除当前的计算。 CE 清除显示数字。 cos 计算显示数字的余弦。若要计算反余弦,请使用“Inv”+“cos”。若要计算双曲余弦,请使用“Hyp”+“cos”。若要计算反双曲余弦,请使用“Inv”+“Hyp”+“cos”。cos 只能用于十进制数字系统。 Dat 在“统计框”对话框内输入显示的数字。只有先单击“Sta”,该按钮才可用。 十进制将显示数字转换为十进制数字系统。 度数在十进制模式下将三角函数输入设置为度数。 dms 将显示数字转换为度-分-秒格式(假设显示数字是用度数表示的)。若要将显示数字转换为用度数表示的格式(假设显示数字是用度-分-秒格式表示的),请使用“Inv”+“dms”。dms 只能用于十进制数字系统。 Exp 允许输入用科学计数法表示的数字。指数限制为四位数。指数中只能使用十进制数(键0-9)。Exp 只能用于十进制数字系统。 F-E 打开或关闭科学计数法。大于10^32 的数总是以指数形式表示。F-E 只能用于十进制数字系统。 梯度在十进制模式中,将三角函数输入设置为梯度。 十六进制将显示数字转换为十六进制数字系统。最大的无符号十六进制数值是将64 位全都设置为1。 Hyp 设置“sin”、“cos”和“tan”的双曲函数。完成一次计算后自动关闭双曲函数功能。Int 显示十进制数值的整数部分。若要显示十进制数值的小数部分,请使用“Inv”+“Int”。Inv 设置“sin”、“cos”、“tan”、“PI”、“x^y”、“x^2”、“x^3”、“ln”、“log”、“Ave”、“Sum”和“s”的反函数。完成一次计算后自动关闭反函数功能。 In 计算自然对数(以e 为底)。若要计算e 的x 次方(其中x 是当前数字),请使用“Inv”+“ln”。 日志计算常用对数(以10 为底)。若要计算10 的x 次方,请使用“Inv”+“log”。 Lsh 左移。若要右移,请使用“Inv”+“Lsh”。在单击该按钮后,必须指定(以二进制形式)要将显示区中的数字左移或右移多少位,然后单击“=”。逻辑运算符在执行任何按位运算时将截断数字的小数部分。 M+ 将显示的数字与内存中已有的任何数字相加,但不显示这些数字的和。 MC 清除内存中的所有数字。 Mod 显示x/y 的模数或余数。此按钮为二进制运算符。例如,计算5 除以3 的模数,单击“5 MOD 3 =”,结果为2。 MR 重调用存内存中的数字。该数字保留在内存中。 MS 将显示数字保存在内存中。 n! 计算显示数字的阶乘。 Not 计算按位取反。逻辑运算符在执行任何按位运算时将截断数字的小数部分。 八进制将显示的数字转换为八进制数字系统。最大的无符号八进制数值是将64 位全都设置为1。 OR 计算按位OR。逻辑运算符在执行任何按位运算时将截断数字的小数部分。 pi 显示pi 的值(3.1415...)。若要显示2 * pi (6.28...),请使用“Inv”+“pi”。“pi”只能用于十进制数字系统。 弧度在十进制模式下将三角函数输入设置为弧度。 s 计算总体参数为–1 的标准偏差。若要计算总体参数为n 的标准偏差,请使用“Inv”+

8位二进制加法计算器

一:本实验设计的是一个8为二进制加法计算器,其功能就是对两个八位的二进制数执行加法运算,并可以异步清零。 二:电路可划分为三部分:半加器、全加器和复位电路。 1、半加器: 真值表 a b so co 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 电路图 2全加器:由半加器和或门组成 电路图 3复位电路: 复位电路通过en控制,当en为‘1’时,执行加法运算,输出正确的值,当en为‘0’时,输输出及结果为全0. 三:实验波形仿真和VHDL 1、仿真图:

2、VHDL代码 1)半加器h_adder: library ieee; use ieee.std_logic_1164.all; entity h_adder is port (a,b :in std_logic; co,so :out std_logic); end entity h_adder; architecture fh1 of h_adder is begin so <= not(a xor (not b));co <= a and b ; end architecture fh1; 2)或门or2a: library ieee; use ieee.std_logic_1164.all; entity or2a is port (a,b :in std_logic; c: out std_logic); end entity or2a; architecture one of or2a is begin c <= a or b ; end architecture one; 3)全加器f_adder: library ieee;

进制转换计算+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 诀窍:八进制转换成二进制与二进制转换成八进制相反。

用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

进制转换计算

二进制、八进制、十进制与十六进制 一、进制的概念 在计算机语言中常用的进制有二进制、八进制、十进制和十六进制,十进制是最主要的表达形式。 基数:基数是指一种进制中组成的基本数字,也就是不能再进行拆分的数字。二进制是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转换成十进制数。

单片机 十进制计算器

姓名学号 时间 2015.05.14 地点 B526 实验题目简易十进制计算器 一、实验目的 1. 掌握单片机编程和调试方法。 2. 掌握键盘、LED显示接口工作原理及编程方法。 二、实验内容 利用MCS-51单片机,设计一个简易十进制计算器,完成一位十进制有符号数的加、减、乘、除运算。 16个按键的安排:10个数字键(0-9),用于输入运算的数字;5个功能键:+、-、×、÷、=、清零(符号选择)。 本实验要求显示:输入的十进制数字及符号,正数不显示符号,负数在数的前面显示“-”;运算符显示(显示字形自定);运算结果显示,包括数字和符号。 三、实验电路连线 P0 P1 P2.0-P2.3

四、实验说明 本实验采用动态显示电路,即6个数码管分时循环工作,刷新频率≥25Hz 。键盘采用矩阵式电路,L1-L4作为输出,H1-H4作为输入。(详细工作原理请参考教材第10章)。 要求所有的程序预先在WA VE 仿真调试通过,达到设计要求后下载程序到单片机芯片在实验板上实际运行。 程序的下载由实验室提供编程器统一烧写,单片机芯片由实验室提供,调试完成后交回。 五、实验仪器和设备 PC 机、WA VE 软件、仿真器、实验板、编程器、电源等。 六、程序流程图及程序 P2.4-P2.7

YJ EQU 50H ;结果存放 YJ1 EQU 51H ;中间结果存放GONG EQU 52H ;功能键存放 ORG 00H START: MOV R3,#0 ;初始化显示为空MOV GONG,#0 MOV 32H,#00H MOV 33H,#00H MOV 34H,#00H MLOOP: CALL DISP ;调显示子程序WAIT: CALL TESTKEY ;判断有无按键JZ WAIT CALL GETKEY ;读键 INC R3 ;按键个数 CJNE A,#0,NEXT1 ;判断是否数字键 LJMP E1 ;转数字键处理NEXT1: CJNE A,#1,NEXT2

电脑计算器解释

INV是什么意思 设置“sin”、“cos”、“tan”、“PI”、“x^y”、“x^2”、“x^3”、“ln”、“log”、“Ave”、“Sum”和“s”的反函数。完成一次计算后自动关闭反函数功能。 HYP是什么意思 设置“sin”、“cos”和“tan”的双曲函数。完成一次计算后自动关闭双曲函数功能。 STA是什么意思 计算显示数字的正切。若要计算反正切,请使用“Inv”+“tan”。若要计算双曲正切,请使用“Hyp”+“tan”。若要计算反双曲正切,请使用“Inv”+“Hyp”+“tan”。“tan”只能用于十进制数字系统。 A VE是什么意思 计算“统计框”对话框中显示数值的平均值。若要计算平均方值,请使用“Inv”+“Ave”。只有先单击“Sta”,该按钮才可用。 SUM是什么意思 计算“统计框”对话框中显示数值的总和。若要计算平方和,请使用“Inv”+“Sum”。只有先单击“Sta”,该按钮才可用。 DAT是什么意思。 在“统计框”对话框内输入显示的数字。只有先单击“Sta”,该按钮才可用。十进制将显示数字转换为十进制数字系统。度数在十进制模式下将三角函数输入设置为度数。 DMS是什么意思。 将显示数字转换为度-分-秒格式(假设显示数字是用度数表示的)。若要将显示数字转换为用度数表示的格式(假设显示数字是用度-分-秒格式表示的),请使用“Inv”+“dms”。dms 只能用于十进制数字系统。 F-E是什么意思。 打开或关闭科学计数法。大于10^32 的数总是以指数形式表示。F-E 只能用于十进制数字系统表描述了计算器的功能: 按钮功能% 按百分比的形式显示乘积结果。输入一个数,单击“*”,输入第二个数,然后单击“%”。例如,50 * 25% 将显示为12.5。也可执行带百分数的运算。输入一个数,单击运算符(“+”、“-”、“*”或“/”),输入第二个数,单击“%”,然后单击“=”。例如,50 + 25%(指的是50 的25%)= 62.5。 ( 开始括号的新层。当前的层数显示在“)”按钮上方的框中。括号的最多层数为25。) 结束括号的当前层。* 乘法。+ 加法。+/- 改变显示数字的符号。- 减法。. 插入小数点。/ 除法。0–9 将此数字置于计算器的显示区。1/x 计算显示数字的倒数。= 对上两个数字执行任意运算。若要重复上一次的运算,请再次单击“=”。A–F 在数值中输入选中字母。只有在十六进制模式为开启状态时该按钮才可用。 And 计算按位AND。逻辑运算符在执行任何按位运算时将截断数字的小数部分。Ave 计算“统计框”对话框中显示数值的平均值。若要计算平均方值,请使用“Inv”+“Ave”。只

进制转换计算器

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

进制转换表

Plc课程知识点 一基础知识 1 数字电路基础 2 plc基础 3 编程基础 二编程入门 1逻辑控制程序编制2定时器程序编制3计数器程序编制三编程软件及仿真软件的使用 二、八、十、十六进制数 数值=6×1000+5×100+0×10+5×1=6505

B1011=1×8+0×4+1×2+1×0=K11 H3AE=3×256(16的2次方)+A(10)×16(16的一次方)+E(14)×1(16的零次方)=K942 8421BCD码 用四位二进制数表示十进制数的编码方式称为BCD码又称二—十进制。 最长用的是8421BCD码 十进制数58的二进制数表示和BCD码表示 1.二进制数表示 K58=B111010 58/2=29 0 29/2=14 (1) 14/2=7 0 7/2=3 (1) 3/2=1 (1) 1/2=0 (1) 2 。8421BCD码表示 5 8 0101 1000 K58=01011000BCD 格雷码 在各种控制系统的角度、长度测量和定位控制中,经常使用绝对式旋转编码器作为位置传感器,其算输出的二进制编码为格雷码。 格雷码是一种无权二进制编码,它的特点是任何相邻的吗组之间只有一位数位发生改变,是一种错误很少的可靠性编码。

十进制转化成N进制 口诀:除N取余,逆序排列 K58=B111010 58/2=29 0 29/2=14 (1) 14/2=7 0 7/2=3 (1) 3/2=1 (1) 1/2=0 (1) k8000=H1f40 8000/16=500 0 500/16=31 (4) 31/16=1 (15) 1/16=0 (1) k302=b100101110 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) 十进制转化成二进制 例:K200=B? 200÷2=100.。。。。。。。0 LSD 100÷2=50.。。。。。。。。0 50÷2=25.。。。。。。。。。0 25÷2=12.。。。。。。。。。1 12÷2=6.。。。。。。。。。。0 6÷2=3.。。。。。。。。。。。0 3÷2=1.。。。。。。。。。。。1 1÷2=0.。。。。。。。。。。。1 MSD K200=B 1100 1000 十进制转化成16进制 例K8000=H?

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)各个控件的属性设置如表

带有八进制和十六进制转换的计算器

带有八进制和十六进制转换的计算器 截图 import java.awt.*; import java.awt.event.*; class This_number_too_big extends Exception {}//自定义的一个结果溢出异常类 class Jsp2003 extends Frame implements ItemListener,ActionListener { public Jsp2003() { addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { dispose(); System.exit(0); } }); } static Jsp2003 mainFrame = new Jsp2003(); static Label lab=new Label("0"); static Panel pnl1=new Panel(new GridLayout(4,3,3,3)); static Panel pnl2=new Panel(new GridLayout(4,1,3,3)); static Panel pnl3=new Panel(new GridLayout(1,2,3,3)); static Panel pnl4=new Panel(new GridLayout(6,1,3,3)); static Button bt9=new Button("9"); static Button bt8=new Button("8"); static Button bt7=new Button("7");

java编写进制转换器的代码

package com.test; import java.awt.*; import java.awt.event.*; import javax.swing.*; import https://www.wendangku.net/doc/c413948187.html,ng.*; public class Demo extends JFrame implements ActionListener{ /** * @param args */ JPanel jp1,jp2; JLabel jl1,jl2; JTextField jtf1,jtf2; JButton jbs[]=new JButton[12]; public static void main(String[] args) { // TODO Auto-generated method stub Demo demo=new Demo(); } public Demo() { jp1=new JPanel(); jp2=new JPanel(); jl1=new JLabel("请在此输入数据"); jl2=new JLabel("转换结果为"); jtf1=new JTextField(10); jtf2=new JTextField(10); jp1.add(jl1); jp1.add(jtf1); jp1.add(jl2); jp1.add(jtf2); for(int i=0;i<12;i++) { jbs[i]=new JButton(String.valueOf(i)); } jbs[0]=new JButton("二进制转八进制"); jbs[1]=new JButton("二进制转十进制"); jbs[2]=new JButton("二进制转十六进制"); jbs[3]=new JButton("八进制转二进制"); jbs[4]=new JButton("八进制转十进制"); jbs[5]=new JButton("八进制转十六进制"); jbs[6]=new JButton("十进制转二进制");

计算器使用

INV是什么意思。 设置“sin”、“cos”、“tan”、“PI”、“x^y”、“x^2”、“x^3”、“ln”、“log”、“Ave”、“Sum”和“s”的反函数。完成一次计算后自动关闭反函数功能。 HYP是什么意思。 设置“sin”、“cos”和“tan”的双曲函数。完成一次计算后自动关闭双曲函数功能。 sta是什么意思。 计算显示数字的正切。若要计算反正切,请使用“Inv”+“tan”。若要计算双曲正切,请使用“Hyp”+“tan”。若要计算反双曲正切,请使用“Inv”+“Hyp”+“tan”。“tan”只能用于十进制数字系统。 AVE是什么意思。 计算“统计框”对话框中显示数值的平均值。若要计算平均方值,请使用“Inv”+“Ave”。只有先单击“Sta”,该按钮才可用。 sum是什么意思。 计算“统计框”对话框中显示数值的总和。若要计算平方和,请使用“Inv”+“Sum”。只有先单击“Sta”,该按钮才可用。 DAT是什么意思。在“统计框”对话框内输入显示的数字。只有先单击“Sta”,该按钮才可用。 十进制 将显示数字转换为十进制数字系统。 度数 在十进制模式下将三角函数输入设置为度数。 DMS是什么意思。 将显示数字转换为度-分-秒格式(假设显示数字是用度数表示的)。若要将显示数字转换为用度数表示的格式(假设显示数字是用度-分-秒格式表示的),请使用“Inv”+“dms”。dms 只能用于十进制数字系统。 F-E是什么意思。打开或关闭科学计数法。大于10^32 的数总是以指数形式表示。F-E 只能用于十进制数字系统 表描述了计算器的功能: 按钮功能 % 按百分比的形式显示乘积结果。输入一个数,单击“*”,输入第二个数,然后单击“%”。例如, 50 * 25% 将显示为12.5。也可执行带百分数的运算。输入一个数,单击运算符(“+”、“-”、“*” 或“/”),输入第二个数,单击“%”,然后单击“=”。例如,50 + 25%(指的是50 的25%) = 62.5。

进制转换练习题及答案

进制转换练习题 2、在计算机内部,信息的存储和处理都采用二进制,最主要的原因是( ) A.便于存储 B 数据输入方便 C.可以增大计算机存储容量 D ?易于用电子元件实现 3?“半斤八两”指古时候用的是十六进制,一斤是十六两,半斤等于八两,如果是 不熟悉十,十六进制之间的转换时,可以借助的工具软件是( ) (A )画图 (B )记事本 (C )录音机 (D )计算器 4. (2004) io + (32) 16的结果是( ) A. (2036) io B. (2054) i6 C. (4006) io D. (100000000110)2 E. (2036) i6 5 .算式(31 ) 10- ( 10001) 2的运算结果是( ) A. (1101) 2 B (15) i0 C (1111) 2 D (E ) i6 6. 汉字“人”的内码是 11001000 1100 1011 ,那么它的十六进制编码是( ) A . B8 C B B B8 BA C D8 DC D C8 CB 7. ( 08年10月高考题)二进制数 1011与 十进制数2相乘的值是( ) A . (10110) 2 B . (11010) 2 C (11100) 2 D . (11111) 2 &下列数中最大的是( ) A. 1111B B 111D C 1101D D 0AH 9 .十进制数17的二进制表示为( ) A. 10011B B 11110B C 10001B D 11101B 10. 二进制数1001转换成十进制数是( ) A . 8 B 9 C 10 D 11 11. 在海上,早期没有无线电通讯设备,人们通常使用 3面由红,黄,蓝三种颜色 的彩色小旗的排列来表达某种信息,它最多能表示的信息个数是( ) 姓名 1 ?完成下列进制转换 成绩 (11110111) B =( )D =( ) H (6DF7) 16=( )2 (143) 10=() (110111) 2 = () 10 (110111110111) (32) 10 = () 16 (1AD ) H = ( )B = ( ) D 每题5分 (82) io = ( ) 2 2 =( ) 16

计算机各种进制转换练习题(附答案)

进制转换练习题 1.十进制数1000对应二进制数为______,对应十六进制数为______。 供选择的答案 A:①1111101010 ②1111101000 ③1111101100 ④1111101110 B:①3C8 ②3D8 ③3E8 ④3F8 2.十进制小数为0.96875对应的二进制数为______,对应的十六进制数为______。 供选择的答案 A:①0.11111 ②0.111101 ③0.111111 ④0.1111111 B:①0.FC ②0.F8 ③0.F2 ④0.F1 3.二进制的1000001相当十进制的______。 ①62 ②63 ③64 ④65 4.十进制的100相当于二进制______,十六进制______。 供选择的答案 A:①1000000 ②1100000 ③1100100 ④1101000 B:①100H ②AOH ③64H ④10H 5.八进制的100化为十进制为______,十六进制的100化为十进制为______。 供选择的答案 A:①80 ②72 ③64 ④56 B:①160 ②180 ③230 ④256 6.十六进制数FFF.CH相当十进制数______。 ①4096.3 ②4096.25 ③4096.75 ④4095.75 7.2005年可以表示为______年。 ①7C5H ②6C5H ③7D5H ④5D5H 8.二进制数10000.00001将其转换成八进制数为______;将其转换成十六进制数为______。 供选择的答案 A:①20.02 ②02.01 ③01.01 ④02.02 B:①10.10 ②01.01 ③01.04 ④10.08 9.对于不同数制之间关系的描述,正确的描述为______。 供选择的答案 A:①任意的二进制有限小数,必定也是十进制有限小数。 ②任意的八进制有限小数,未必也是二进制有限小数。 ③任意的十六进制有限小数,不一定是十进制有限小数。 ④任意的十进制有限小数,必然也是八进制有限小数。 10.二进制整数1111111111转换为十进制数为______,二进制小数0.111111转换成十进制数为______。

相关文档