计算机原理实验室实验报告进制间等值转换
进制转换 实验报告

进制转换实验报告进制转换实验报告一、引言进制转换是计算机科学中非常基础的概念之一。
在计算机科学中,常见的进制有二进制、八进制、十进制和十六进制。
本次实验旨在通过实际操作,深入理解进制转换的原理和方法,并通过实验结果验证理论的正确性。
二、实验目的1. 掌握二进制、八进制、十进制和十六进制的表示方法;2. 理解进制转换的原理和方法;3. 验证进制转换的正确性。
三、实验过程1. 二进制转十进制通过实验我们发现,二进制数的每一位上的数值都是2的幂次方。
例如,二进制数1011转换为十进制数的计算过程如下:1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 1 * 2^0 = 8 + 0 + 2 + 1 = 11通过多次实验,我们验证了二进制转换为十进制的方法的正确性。
2. 十进制转二进制十进制数转换为二进制数的方法是不断除以2,将余数从下往上排列。
例如,将十进制数11转换为二进制数的计算过程如下:11 / 2 = 5 余 15 / 2 = 2 余 12 / 2 = 1 余 01 /2 = 0 余 1将余数从下往上排列,得到二进制数1011。
通过多次实验,我们验证了十进制转换为二进制的方法的正确性。
3. 八进制和十六进制的转换八进制和十六进制的转换方法与二进制和十进制类似,只是基数不同。
八进制的基数为8,十六进制的基数为16。
通过实验,我们发现八进制和十六进制的转换方法也是非常简单和直观的。
四、实验结果通过多次实验,我们成功地将二进制、八进制、十进制和十六进制相互转换,并验证了转换方法的正确性。
实验结果表明,进制转换是可靠和准确的。
五、实验总结通过本次实验,我们深入理解了进制转换的原理和方法,并通过实际操作验证了理论的正确性。
进制转换在计算机科学中具有重要的意义,它不仅在计算机编程中得到广泛应用,还在计算机底层的存储和处理中起到关键作用。
掌握进制转换的方法,对于理解计算机科学的其他概念和算法也非常有帮助。
进制转换实验

计算机科学与技术系实验报告专业名称计算机科学与技术课程名称微机原理与接口技术项目名称进制转换实验班级学号姓名同组人员无实验日期 2016/12/9一、实验目的与要求:(简述本次实验要求达到的目的,涉及到的相关知识点,实验的具体要求。
)1、熟悉二进制、十进制、十六进制转换规则。
2、熟悉算术运算指令以及移位指令的运用。
二、实验内容(根据本次实验项目的具体任务和要求,完成相关内容,可包括:实验目的、算法原理、实验仪器、设备选型及连线图、算法描述或流程图、源代码、实验运行步骤、关键技术分析、测试数据与实验结果、其他)内容:十六进制转换十进制把十六进制数首先写成加权系数展开式,相应的位乘以2的n次幂,然后按十进制加法规则求和。
原理:十六进制向十进制的转换分成两个大的步骤:一是从十六进制向二进制的转换,由于十六进制和二进制的特殊关系,它们之间的转换非常简单。
二是从二进制转换为十进制,相对而言,这种转换复杂一些。
所以该模块的核心是实现二进制数向十进制数的转换。
方法是将要转换的二进制数预先放到AX寄存器中,判断AX中数的符号,若为负数,则将负号送入输入缓冲区,并求AX 的绝对值;若AX中的数为正数,则不做其他处理,此时AX中即为无符号二进制数。
然后将无符号二进制数转换成十进制数,可采用将AX除以10,得到第一个商和第一个余数,第一个余数就是所求十进制数的个位:将第一个商除以10,得到第二个商和余数,第二个余数就是所求十进制数的十位数,重复以上过程,一直循环到商为0时,得到的余数就是所求十进制数的最高位数。
这就是数制转换中常用的“除模留余倒排列”法则。
三、实验分析与小结:(实验过程中的问题分析、产生的原因以及解决方法;实验结果分析;有待优化思路)1.程序分析:@DATA SEGMENTDATA1 DB 6 DUP(?),'$' ;数码段代码;BUF DB 11 DUP(?),'$'@DATA ENDSSTACK1 SEGMENT STACKDB 200 DUP(?)STACK1 ENDSCODE SEGMENT ;代码段ASSUME CS:CODE ,DS:@DATA,SS:STACK1 START:MOV AX,@DATAMOV DS,AX; MOV AX,@DATA;MOV DS,AX;LEA DX,BUF ;数据输入MOV DI,OFFSET DATA1+5 ;从个位开始存起MOV BX,0MOV CH,4 ;设置输入十六进制最大位数MOV CL,4 ;设置循环次数=BX*16MOV SI,0AH ;定义除数WOLF:MOV AH,01HMOV AL,00HINT 21H ;输入字符CMP AL,13 ;位数小于4回车结束输入JE FOOLCMP AL,30H ;输入出错JB EXITCMP AL,39H ;输入数字0~9JBE LABCMP AL,41H ;输入出错JB EXITCMP AL,46H ;输入大写A~FJBE LAB1CMP AL,61H ;输入出错JB EXITCMP AL,66H ;输入出错JA EXITSUB AL,57H ;输入小写a~fJMP LAB2LAB:SUB AL,30H ;求取输入的数值JMP LAB2LAB1:SUB AL,37H ;求取输入的数值LAB2:SHL BX,CL ;BX*16ADD BL,AL ;与下一位十六进制相加,求输入的十六进制DEC CHJNZ WOLFFOOL:MOV AX,BX ;送到AX作被除数FOX:XOR DX,DXDIV SIADD DL,30HMOV [DI],DLDEC DICMP AX,0 ;AX不为0继续求余JNZ FOXXOR DX,DXMOV AH,09H ;输出字符串INT 21HEXIT:MOV AH,4CHINT 21HCODE ENDSEND START实验分析:设置初始值:MOV DI,OFFSET DATA1+5 ;从个位开始存起MOV BX,0 ;将bx寄存器清零MOV CH,4 ;设置输入十六进制最大位数MOV CL,4 ;设置循环次数=BX*16MOV SI,0AH ;定义除数WOLF子程序::MOV AH,01H ;01号功能输入MOV AL,00HINT 21H ;输入字符CMP AL,13 ;位数小于4回车结束输入JE FOOLFOOL子程序:MOV AX,BX ;BX的数送到AX作被除数FOX子程序::XOR DX,DX ;DX清零DIV SI ;除以除数ADD DL,30HMOV [DI],DLDEC DICMP AX,0 ;AX不为0继续求余JNZ FOXXOR DX,DXMOV AH,09H ;输出字符串INT 21H在此次程序中需要了解一些算数指令:加法指令:ADD ADC INC减法指令:SUB SBB DEC NEG CMP乘法指令:MUL IMUL除法:DIV IDIV1.屏幕显示随意输入一个小于4位的十六进制数,打完字敲回车,马上出现所对应的十进制数。
实验报告数制转换

一、实验目的1. 掌握数制转换的基本概念和原理;2. 熟练运用数制转换的方法,实现不同数制之间的转换;3. 培养学生的逻辑思维能力和动手操作能力。
二、实验原理数制转换是指将一个数从一个数制转换到另一个数制的过程。
常见的数制有十进制、二进制、八进制和十六进制。
以下是几种常见数制之间的转换方法:1. 二进制与十进制之间的转换(1)二进制转十进制:将二进制数按位权展开求和;(2)十进制转二进制:不断除以2,取余数,直到商为0,将余数倒序排列。
2. 八进制与十进制之间的转换(1)八进制转十进制:将八进制数按位权展开求和;(2)十进制转八进制:不断除以8,取余数,直到商为0,将余数倒序排列。
3. 十六进制与十进制之间的转换(1)十六进制转十进制:将十六进制数按位权展开求和;(2)十进制转十六进制:不断除以16,取余数,直到商为0,将余数倒序排列,不足四位的在前面补0。
4. 二进制与八进制之间的转换(1)二进制转八进制:将二进制数每三位分成一组,每组对应一个八进制数;(2)八进制转二进制:将八进制数每位转换成三位二进制数。
5. 二进制与十六进制之间的转换(1)二进制转十六进制:将二进制数每四位分成一组,每组对应一个十六进制数;(2)十六进制转二进制:将十六进制数每位转换成四位二进制数。
三、实验仪器与材料1. 计算机2. 文档编辑软件(如Microsoft Word)四、实验步骤1. 在计算机上打开文档编辑软件,创建一个新的文档。
2. 将以下数制转换题目依次输入文档中:(1)将二进制数1101转换为十进制数;(2)将十进制数21转换为二进制数;(3)将八进制数27转换为十进制数;(4)将十进制数36转换为八进制数;(5)将十六进制数1A转换为十进制数;(6)将十进制数156转换为十六进制数;(7)将二进制数10110111转换为八进制数;(8)将八进制数532转换为二进制数;(9)将二进制数11011011转换为十六进制数;(10)将十六进制数A3C转换为二进制数。
进制转换_实验报告

一、实验目的1. 理解不同进制之间的转换原理。
2. 掌握二进制、八进制、十进制和十六进制之间的相互转换方法。
3. 培养实际操作能力和逻辑思维能力。
二、实验原理进制转换是计算机科学和数字电路中的基本概念。
常见的进制有二进制、八进制、十进制和十六进制。
它们之间的转换主要基于位权原理。
- 二进制:基数为2,只有0和1两个数字,每一位的值是2的幂次方。
- 八进制:基数为8,每一位的值是8的幂次方。
- 十进制:基数为10,每一位的值是10的幂次方。
- 十六进制:基数为16,每一位的值是16的幂次方,其中A-F表示10-15。
三、实验器材- 计算机- 文档编辑软件(如Microsoft Word)四、实验步骤1. 二进制转十进制- 将二进制数按照位权原理进行计算。
- 例如,二进制数1101转换为十进制:\(1 \times 2^3 + 1 \times 2^2 + 0 \times 2^1 + 1 \times 2^0 = 8 + 4 + 0 + 1 = 13\)。
2. 十进制转二进制- 使用除以2的方法,将十进制数不断除以2,记录余数。
- 将余数从下到上排列,得到二进制数。
- 例如,十进制数13转换为二进制:\(13 \div 2 = 6\) 余 1,\(6 \div 2 = 3\) 余 0,\(3 \div 2 = 1\) 余 1,\(1 \div 2 = 0\) 余 1,所以13的二进制为1101。
3. 八进制转十进制- 将八进制数按照位权原理进行计算。
- 例如,八进制数123转换为十进制:\(1 \times 8^2 + 2 \times 8^1 + 3 \times 8^0 = 64 + 16 + 3 = 83\)。
4. 十进制转八进制- 使用除以8的方法,将十进制数不断除以8,记录余数。
- 将余数从下到上排列,得到八进制数。
- 例如,十进制数83转换为八进制:\(83 \div 8 = 10\) 余 3,\(10 \div 8 = 1\) 余 2,\(1 \div 8 = 0\) 余 1,所以83的八进制为123。
进制转换实训报告

一、实训目的1. 理解不同进制之间的转换原理;2. 掌握二进制、八进制、十进制、十六进制之间的转换方法;3. 提高进制转换的实际操作能力。
二、实训内容1. 理解进制概念及进位制;2. 掌握二进制、八进制、十进制、十六进制之间的转换;3. 实现进制转换程序设计。
三、实训过程1. 理解进制概念及进位制进制是指用若干个不同的数字符号来表示数值的方法。
进位制是进制的一种,指用整数幂次表示数值的方法。
常见的进位制有二进制、八进制、十进制和十六进制。
2. 掌握不同进制之间的转换(1)二进制与十进制的转换二进制转十进制:将二进制数按权展开,然后将结果相加。
例:二进制数 1101 转换为十进制数:1×2^3 + 1×2^2 + 0×2^1 + 1×2^0 = 8 + 4 + 0 + 1 = 13十进制转二进制:将十进制数除以2,取余数,直到商为0,将余数倒序排列即为二进制数。
例:十进制数 13 转换为二进制数:13 ÷ 2 = 6 余 16 ÷ 2 = 3 余 03 ÷ 2 = 1 余 11 ÷2 = 0 余 1将余数倒序排列:1101(2)八进制与十进制的转换八进制转十进制:将八进制数按权展开,然后将结果相加。
例:八进制数 17 转换为十进制数:1×8^1 + 7×8^0 = 8 + 7 = 15十进制转八进制:将十进制数除以8,取余数,直到商为0,将余数倒序排列即为八进制数。
例:十进制数 15 转换为八进制数:15 ÷ 8 = 1 余 71 ÷ 8 = 0 余 1将余数倒序排列:17(3)十六进制与十进制的转换十六进制转十进制:将十六进制数按权展开,然后将结果相加。
例:十六进制数 A3 转换为十进制数:A×16^1 + 3×16^0 = 10×16 + 3 = 160 + 3 = 163十进制转十六进制:将十进制数除以16,取余数,直到商为0,将余数转换为十六进制数,然后倒序排列即为十六进制数。
数值的转换实验报告

一、实验目的1. 了解数值转换的基本原理和方法;2. 掌握十进制、二进制、八进制、十六进制之间的相互转换;3. 熟悉进制转换在实际应用中的意义。
二、实验原理数值转换是计算机科学中一项基本操作,不同的进制之间可以相互转换。
常见的进制有十进制、二进制、八进制和十六进制。
下面分别介绍它们之间的转换方法。
1. 十进制与二进制之间的转换(1)十进制转二进制:将十进制数转换为二进制数的方法是不断地除以2,并记录下每次除法运算的余数。
将得到的余数从下到上排列,即为所求的二进制数。
(2)二进制转十进制:将二进制数转换为十进制数的方法是将每一位上的数乘以2的幂次方,然后将得到的数相加。
2. 十进制与八进制之间的转换(1)十进制转八进制:将十进制数转换为八进制数的方法是不断地除以8,并记录下每次除法运算的余数。
将得到的余数从下到上排列,即为所求的八进制数。
(2)八进制转十进制:将八进制数转换为十进制数的方法是将每一位上的数乘以8的幂次方,然后将得到的数相加。
3. 十进制与十六进制之间的转换(1)十进制转十六进制:将十进制数转换为十六进制数的方法是不断地除以16,并记录下每次除法运算的余数。
余数在0~9之间时直接写出,余数在10~15之间时用字母A~F表示。
将得到的余数从下到上排列,即为所求的十六进制数。
(2)十六进制转十进制:将十六进制数转换为十进制数的方法是将每一位上的数乘以16的幂次方,然后将得到的数相加。
三、实验仪器与材料1. 计算机;2. 实验指导书;3. 编程软件(如Visual Studio、Eclipse等)。
四、实验步骤1. 编写程序实现十进制与二进制之间的转换;2. 编写程序实现十进制与八进制之间的转换;3. 编写程序实现十进制与十六进制之间的转换;4. 验证程序的正确性。
五、实验结果与分析1. 十进制与二进制之间的转换程序代码如下:```c#include <stdio.h>void dec_to_bin(int num) {int binary[32], i = 0;while (num > 0) {binary[i++] = num % 2;num /= 2;}for (int j = i - 1; j >= 0; j--)printf("%d", binary[j]);}int main() {int num;printf("请输入一个十进制数:");scanf("%d", &num);printf("转换后的二进制数为:%d\n", num); dec_to_bin(num);return 0;}```2. 十进制与八进制之间的转换程序代码如下:```c#include <stdio.h>void dec_to_oct(int num) {int octal[32], i = 0;while (num > 0) {octal[i++] = num % 8;num /= 8;}for (int j = i - 1; j >= 0; j--)printf("%d", octal[j]);}int main() {int num;printf("请输入一个十进制数:");scanf("%d", &num);dec_to_oct(num);return 0;}```3. 十进制与十六进制之间的转换程序代码如下:```c#include <stdio.h>void dec_to_hex(int num) {int hex[32], i = 0;char hex_char[16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};while (num > 0) {hex[i++] = num % 16;num /= 16;}for (int j = i - 1; j >= 0; j--)printf("%c", hex_char[hex[j]]);}int main() {int num;printf("请输入一个十进制数:");scanf("%d", &num);dec_to_hex(num);return 0;}```六、实验总结通过本次实验,我们了解了数值转换的基本原理和方法,掌握了十进制、二进制、八进制、十六进制之间的相互转换。
进制之间的转换讲解

进制之间的转换讲解一、十进制转二进制在计算机中,二进制是最基本的进制,因此我们经常需要将十进制数转换为二进制数。
转换的方法是不断地用十进制数除以2,并将余数记录下来,直到商为0为止。
最后将记录的余数反向排列即得到二进制数。
例如,将十进制数23转换为二进制数:23 ÷ 2 = 11 余 111 ÷ 2 = 5 余 15 ÷ 2 = 2 余 12 ÷ 2 = 1 余 01 ÷2 = 0 余 1将余数反向排列得到的二进制数为10111,即23的二进制表示为10111。
二、二进制转十进制二进制转换为十进制的方法是将二进制数从右往左依次乘以2的幂,然后将结果相加。
从右往左的第一位为2^0,第二位为2^1,依次类推。
例如,将二进制数10111转换为十进制数:1 × 2^4 + 0 × 2^3 + 1 × 2^2 + 1 × 2^1 + 1 × 2^0 = 16 +0 + 4 + 2 + 1 = 23三、十进制转八进制八进制是基于8的进制,因此将十进制数转换为八进制数的方法与将十进制数转换为二进制数类似。
不断地用十进制数除以8,并将余数记录下来,直到商为0为止。
最后将记录的余数反向排列即得到八进制数。
例如,将十进制数71转换为八进制数:71 ÷ 8 = 8 余 78 ÷ 8 = 1 余 01 ÷ 8 = 0 余 1将余数反向排列得到的八进制数为107,即71的八进制表示为107。
四、八进制转十进制八进制转换为十进制的方法是将八进制数从右往左依次乘以8的幂,然后将结果相加。
从右往左的第一位为8^0,第二位为8^1,依次类推。
例如,将八进制数107转换为十进制数:1 × 8^2 + 0 × 8^1 + 7 × 8^0 = 64 + 0 + 7 = 71五、十进制转十六进制十六进制是基于16的进制,因此将十进制数转换为十六进制数的方法与将十进制数转换为二进制数类似。
进制实验报告

一、实验目的1. 理解不同进制之间的转换方法;2. 掌握二进制、八进制、十进制、十六进制之间的转换;3. 培养实际操作能力,提高进制转换的熟练程度。
二、实验原理进制是指用一组固定的符号和规则来表示数值的方法。
常见的进制有二进制、八进制、十进制和十六进制。
二进制使用0和1两个数字表示,八进制使用0-7表示,十进制使用0-9表示,十六进制使用0-9和A-F表示。
进制之间的转换方法如下:1. 二进制转十进制:将二进制数按位权展开求和;2. 十进制转二进制:将十进制数不断除以2,记录余数,倒序排列得到二进制数;3. 二进制转八进制:将二进制数每三位一组,转换成对应的八进制数;4. 八进制转二进制:将八进制数每三位一组,转换成对应的二进制数;5. 十进制转八进制:将十进制数不断除以8,记录余数,倒序排列得到八进制数;6. 八进制转十进制:将八进制数按位权展开求和;7. 十进制转十六进制:将十进制数不断除以16,记录余数,倒序排列得到十六进制数;8. 十六进制转十进制:将十六进制数按位权展开求和。
三、实验仪器与材料1. 计算机;2. 实验指导书;3. 实验报告纸。
四、实验步骤1. 将给定的二进制数转换成十进制数;2. 将给定的十进制数转换成二进制数;3. 将给定的二进制数转换成八进制数;4. 将给定的八进制数转换成二进制数;5. 将给定的十进制数转换成八进制数;6. 将给定的八进制数转换成十进制数;7. 将给定的十进制数转换成十六进制数;8. 将给定的十六进制数转换成十进制数。
五、实验数据及结果1. 二进制转十进制:- 给定二进制数:1101- 转换结果:13(十进制)2. 十进制转二进制:- 给定十进制数:45- 转换结果:101101(二进制)3. 二进制转八进制:- 给定二进制数:1101010- 转换结果:215(八进制)4. 八进制转二进制:- 给定八进制数:123- 转换结果:111101(二进制)5. 十进制转八进制:- 给定十进制数:58- 转换结果:72(八进制)6. 八进制转十进制:- 给定八进制数:72- 转换结果:58(十进制)7. 十进制转十六进制:- 给定十进制数:255- 转换结果:FF(十六进制)8. 十六进制转十进制:- 给定十六进制数:FF- 转换结果:255(十进制)六、实验总结通过本次实验,我们掌握了不同进制之间的转换方法,提高了进制转换的熟练程度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程名称:汇编语言、微机原理及接口技术 姓 名 学 号 班 级 成 绩
设备名称及软件环境 实验名称
Windows XP 操作系统 emu8086 仿真器 proteus 仿真器 实验日期 2012.12.1节的两位十六进制数据,并分别用十六进制,十进制,八进制,二进制显 示出来等价的值。 二.理论分析或算法分析 1.主要是先定义一个从键盘输入子程序.利 2.用主程序调用子程序来实现各种进制的显示。
主程序流程图 图 2.1
子程序流程图 图 2.2
1
三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等) 源代码: j0: call gethex mov bl, al add al, '0' cmp al, '9' jbe j2 add al, 'A'-'0'-10 j2: mov hex, al call gethex mov cl, 4 shl bl, cl;逻辑左移,右面补零 add bl, al add al, '0' cmp al, '9' jbe j3 add al, 'A'-'0'-10 j3: mov hex+1, al mov al, bl aam add al, '0' mov de+2, al mov al, ah aam add ax, 3030h mov de+1, al mov de, ah mov al, bl xor ah, ah shl ax, 1 shl ax, 1 add ah, 30h mov oct, ah mov cl, 3 xor ah, ah shl ax, cl add ah, '0'
2
mov oct+1, ah mov al, bl and al, 07H add al, 30h mov oct+2, al mov si, offset bin mov cx, 8 lp2: shl bl, 1 mov byte ptr [si], '0' jnc j4 inc byte ptr [si] j4: inc si loop lp2 mov ah, 9 mov dx, offset str int 21h jmp j0 str hex de oct bin db db db db db 13,10,"HEX=" 0,0, "H, DEC=" 0,0,0, "D, OCT=" 0,0,0, "Q, BIN=" 8 dup(0), "B",13,10,'$'
gethex proc mov ah, 1 int 21h sub al, '0' cmp al, 9 jbe j1 sub al, 'A'-'0'-10 cmp al, 15 jbe j1 sub al, 'a'-'A' j1:ret gethex endp
3
四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)
五.结论 完成了本次实验要求的进制间等值转换实验内容。学会了在主程序中用 CALL 调用子 程序。
报告提交日期
4