计算机原理实验室实验报告进制间等值转换
进制转换 实验报告
进制转换实验报告进制转换实验报告一、引言进制转换是计算机科学中非常基础的概念之一。
在计算机科学中,常见的进制有二进制、八进制、十进制和十六进制。
本次实验旨在通过实际操作,深入理解进制转换的原理和方法,并通过实验结果验证理论的正确性。
二、实验目的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. 二进制 (Binary) 转换为十进制 (Decimal):方法1:将二进制数从右往左按位展开,每一位的值与2的幂相乘,然后将得到的结果相加。
例如,二进制数1101转换为十进制,计算过程如下:(1*2^3)+(1*2^2)+(0*2^1)+(1*2^0)=13方法2:使用公式法。
将二进制数从高位到低位按权展开,并将每一位的值乘以相应权重,然后将结果相加。
例如,二进制数1101转换为十进制,计算过程如下:(1*2^3)+(1*2^2)+(0*2^1)+(1*2^0)=132. 十进制 (Decimal) 转换为二进制 (Binary):方法1:使用除二取余法。
将十进制数从右往左不断除以2,直到商为0。
最后,将得到的余数按照从下往上的顺序排列,即为二进制数。
例如,十进制数13转换为二进制,计算过程如下:13÷2=商6、余16÷2=商3、余03÷2=商1、余11÷2=商0、余1将得到的余数按从下往上的顺序排列,即为二进制数1101方法2:使用公式法。
将十进制数转换为相应的二进制幂的和。
例如,十进制数13转换为二进制,计算过程如下:13=(2^3)+(2^2)+(2^0)=11013. 十进制 (Decimal) 转换为八进制 (Octal):方法1:使用除八取余法。
将十进制数从右往左不断除以8,直到商为0。
最后,将得到的余数按从下往上的顺序排列,即为八进制数。
例如,十进制数86转换为八进制,计算过程如下:86÷8=商10、余610÷8=商1、余21÷8=商0、余1将得到的余数按从下往上的顺序排列,即为八进制数126方法2:使用公式法。
将十进制数转换为相应的八进制幂的和。
研究报告进制转换(二进制八进制十进制十六进制)
进制转换(二进制八进制十进制十六进制)1、二进制数、八进制数、十六进制数转十进制数有一个公式:二进制数、八进制数、十六进制数的各位数字分别乖以各自的基数的(N-1)次方,其和相加之和便是相应的十进制数。
个位,N=1;十位,N=2...举例:110B=1*2的2次方+1*2的1次方+0*2的0次方=0+4+2+0=6D110Q=1*8的2次方+1*8的1次方+0*8的0次方=64+8+0=72D110H=1*16的2次方+1*16的1次方+0*16的0次方=256+16+0=272D2、十进制数转二进制数、八进制数、十六进制数方法是相同的,即整数部分用除基取余的算法,小数部分用乘基取整的方法,然后将整数与小数部分拼接成一个数作为转换的最后结果。
例:见四级指导16页。
3、二进制数转换成其它数据类型3-1二进制转八进制:从小数点位置开始,整数部分向左,小数部分向右,每三位二进制为一组用一位八进制的数字来表示,不足三位的用0补足,就是一个相应八进制数的表示。
010110.001100B=26.14Q八进制转二进制反之则可。
3-2二进制转十进制:见13-3二进制转十六进制:从小数点位置开始,整数部分向左,小数部分向右,每四位二进制为一组用一位十六进制的数字来表示,不足四位的用0补足,就是一个相应十六进制数的表示。
00100110.00010100B=26.14H十进制转各进制要将十进制转为各进制的方式,只需除以各进制的权值,取得其余数,第一次的余数当个位数,第二次余数当十位数,其余依此类推,直到被除数小于权值,最后的被除数当最高位数。
一、十进制转二进制如:55转为二进制2|5527――1 个位13――1 第二位6――1 第三位3――0 第四位1――1 第五位最后被除数1为第七位,即得110111二、十进制转八进制如:5621转为八进制8|5621702 ―― 5 第一位(个位)87 ―― 6 第二位10 ―― 7 第三位1 ――2 第四位最后得八进制数:127658三、十进制数十六进制如:76521转为十六进制16|765214726 ――5 第一位(个位)295 ――6 第二位18 ――6 第三位1 ――2 第四位最后得1276516二进制与十六进制的关系2进制0000 0001 0010 0011 0100 0101 0110 011116进制0 1 2 3 4 5 6 72进制1000 1001 1010 1011 1100 1101 1110 111116进制8 9 a(10) b(11) c(12) d(13) e(14) f(15)可以用四位数的二进制数来代表一个16进制,如3A16 转为二进制为:3为0011,A 为1010,合并起来为00111010。
微机实验三-进制转换实验报告
计算机科学与技术系实验报告专业名称计算机科学与技术课程名称微机原理与接口技术项目名称进制转换实验班级学号姓名同组人员无实验日期 2016/06/28一、实验目的与要求1、熟悉二进制、十进制、十六进制转换规则。
2、熟悉算术运算指令及移位指令的运用。
二、实验逻辑原理图与分析(汇编—流程图)2.1 画实验逻辑原理图三、程序分析1、十进制转二进制(此处时代码,但是由于上传问题,学生可以自己添加)将存放转换后的二进制数值,并通过移位的方式将寄存器中的每一位转换成对应的字符显示出来就成了对应的二进制。
2、二进制转十进制(此处也是代码,只要把代码复制进去就行。
也可以私聊我,我分享代码给你们。
)用系统功能调用将上面程序除出来的每一位转换成字符输出到显示器上来,从而完成2进制向10进制的转黄。
四、实验数据和结果分析4.1 实验结果数据二进制转十进制实验结果: 00001111B=15D;十进制转二进制实验结果:27D=00011011B;十六进制转十进制的实验结果:0011H=17D4.2 结果数据分析二进制转十进制结果分析:((0*2+1)*2+1)*2+1)*2+1=15;十进制转二进制结果分析:该数在计算机是以二进制形式存储的,即0,1,每次输出时,根据最高位判断一下是1还是0;十六进制转十进制结果分析:(0*16+1)*16+1=17五、实验问题分析、思考题与小结在实验过程中,我们发现对于16位的10转2中,其高位会出错通过检测盘查发现,错误出在对于寄存器的界限上以及高低位的使用上有问题。
本次实验过程中,我们进一步了解的系统功能调用,如从键盘上输入字符以及从显示器上显示对应的字符。
了解了在汇编语言中如何实现子函数调用,利用call 指令调用对应的函数,从而减少程序的重复性以及方便程序的可读性。
在整体实验中熟悉了移位指令,算术指令以及堆栈相关的指令,对于这些指令的用法进一步了解了。
并通过在编写程序中出现的错误加深了自身的编程习惯。
不同进制间的转换实验报告
不同进制间的转换实验报告1. 通过实验了解不同进制表示法之间的转换规则;2. 掌握将一个进制转换为另一个进制的方法。
实验材料和设备:1. 笔记本电脑;2. 实验工具:计算器或电脑上的进制转换工具。
实验步骤:1. 了解不同进制表示法:1) 十进制:使用10个数字(0-9)进行计数;2) 二进制:使用2个数字(0和1)进行计数;3) 八进制:使用8个数字(0-7)进行计数;4) 十六进制:使用16个数字(0-9和A-F)进行计数。
2. 十进制转换为其他进制:a) 二进制:将十进制数不断除以2,将每次的余数从下往上排列,直到商为0,最终结果即为二进制数;b) 八进制:将十进制数不断除以8,将每次的余数从下往上排列,直到商为0,最终结果即为八进制数;c) 十六进制:将十进制数不断除以16,将每次的余数从下往上排列,对于大于9的余数,用A-F表示,直到商为0,最终结果即为十六进制数。
3. 其他进制转换为十进制:a) 二进制:将二进制数从右往左,每一位乘以对应的2的幂次,再将结果相加;b) 八进制:将八进制数从右往左,每一位乘以对应的8的幂次,再将结果相加;c) 十六进制:将十六进制数从右往左,每一位乘以对应的16的幂次,再将结果相加,对于A-F这些字母,可以将其转换为对应的十进制数再进行计算。
实验结果和讨论:1. 将十进制数11转换为二进制:a) 11除以2得商5余1;b) 5除以2得商2余1;c) 2除以2得商1余0;d) 1除以2得商0余1;e) 从下往上排列余数:1011;f) 结果为二进制数1011。
2. 将十进制数17转换为八进制:a) 17除以8得商2余1;b) 2除以8得商0余2;c) 从下往上排列余数:21;d) 结果为八进制数21。
3. 将十进制数123转换为十六进制:a) 123除以16得商7余11(11用B表示);b) 7除以16得商0余7;c) 从下往上排列余数:7B;d) 结果为十六进制数7B。
进制数转换实验报告
进制数转换实验报告专业:计算机科学与技术班级:本1002 姓名:学号:提交日期:2011-10-11 成绩:一、实验目的理解栈的特点,熟练掌握栈的类型定义方法及其初始化栈、判栈为空、出栈、入栈等基本操作,培养综合运用所学知识,根据具体问题进行数据结构设计和算法设计的能力。
二、实验要求1.在问题分析的基础上选择合适的存储结构,进行算法设计,编制程序并上机调试成功。
2.按要求完成实验报告3.保存和打印出程序的运行结果,并结合程序进行分析。
三、实验内容实现将任意一个十进制整数转化为2进制整数。
(选作转化为R进制数,R=2,8,16,由用户选择)算法为:1、定义栈的顺序存储结构2、分别定义栈的基本操作(初始化栈、判栈为空、出栈、入栈等)3、定义一个函数用来实现上面问题:十进制整数X和R作为形参初始化栈只要X不为0重复做下列动作将X%R入栈X=X/R只要栈不为空重复做下列动作栈顶出栈输出栈顶元素四、实验设计及测试结果1.数据结构typedef struct {char ch[10]; //关键字int num; //该关键字出现次数}HSTable;HSTable HT[MAXSIZE];HT[ ]为一维数组表示的哈希表。
2.函数调用层次结构图3 函数调用层次结构3.函数功能说明Create函数:创建Hash表Scan函数:扫描某文件,统计其中各关键字出现次数PrintHash函数:显示Hash表InsertHash函数:将一个单词作为关键字插入Hash表中SearchHash函数:在Hash表中查找是否包含某个单词,即查找该单词是否为关键字。
H函数:计算某单词的Hash地址。
依据函数Hash(key)=[(key的第一个字母序号)*100+(key 的最后一个字母序号)] MOD 414.主要函数流程图5. 测试结果与分析上述程序在Visual C++ 6.0环境下加以实现。
经过多次测试,程序运行正确。
进制转换实验报告
一、实验目的:
掌握.Net平台上C#程序的基本编写与调试方法
二、实验内容:
1、编写C#.net基本语法程序,并调试。
2、开发一个向任意进制进行转换的程序:1)用户通过控制台输入一10进制数(正数);2)用户输入转换的进制(进制范围:2~32,如:7进制);3)程序计算处理并输出转换进制的数字(如:输出7进制数)。
publicstaticstringConvert(intnumber,intformat)
{
if(number == 0)
returnnumber.ToString();
Stack<char> sb =newStack<char>();
while(number > 0)
{
sb.Push(character[(number % format)]);
签名:
附加代码
进制转换代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespace进制转换
{
publicclassFormatConvert
{
protectedstaticstringcharacter ="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
intnum =int.Parse(Console.ReadLine());
Console.Write("请输入要转换到X进制(2<=X<=32):");
intTo =int.Parse(CБайду номын сангаасnsole.ReadLine());
进制转化实验报告模板(3篇)
第1篇实验名称:进制转化实验实验日期:____年__月__日实验地点:____实验室实验人员:____、____、____实验目的:1. 理解不同进制之间的转换原理。
2. 掌握二进制、八进制、十进制和十六进制之间的相互转换方法。
3. 培养实验操作能力和数据处理能力。
实验原理:进制是表示数值的方法,不同的进制使用不同的数字符号和规则。
常见的进制有二进制、八进制、十进制和十六进制。
本实验通过理论学习和实际操作,掌握不同进制之间的转换方法。
实验仪器与材料:1. 计算器2. 纸和笔3. 实验指导书实验步骤:一、二进制与十进制的转换1. 将十进制数转换为二进制数。
- 方法:将十进制数不断除以2,记录下余数,将余数从下到上排列,得到的数即为二进制数。
2. 将二进制数转换为十进制数。
- 方法:将二进制数从右到左,每位乘以对应的2的幂次,将所有结果相加,得到的数即为十进制数。
二、八进制与十进制的转换1. 将十进制数转换为八进制数。
- 方法:将十进制数不断除以8,记录下余数,将余数从下到上排列,得到的数即为八进制数。
2. 将八进制数转换为十进制数。
- 方法:将八进制数从右到左,每位乘以对应的8的幂次,将所有结果相加,得到的数即为十进制数。
三、十六进制与十进制的转换1. 将十进制数转换为十六进制数。
- 方法:将十进制数不断除以16,记录下余数,将余数从下到上排列,当余数大于9时,用字母A、B、C、D、E、F表示,得到的数即为十六进制数。
2. 将十六进制数转换为十进制数。
- 方法:将十六进制数从右到左,每位乘以对应的16的幂次,将所有结果相加,得到的数即为十进制数。
实验数据记录:1. 十进制数转换为二进制数:- 十进制数:10- 转换结果:10102. 十进制数转换为八进制数:- 十进制数:100- 转换结果:1443. 十进制数转换为十六进制数:- 十进制数:255- 转换结果:FF实验结果分析:通过本次实验,我们成功地将十进制数转换为二进制、八进制和十六进制数,同时也将这三种进制数转换回十进制数。
进制的转换实验报告
进制的转换实验报告引言进制是计算机科学中的重要概念之一,它描述了数字在数码系统中的表示方式。
在计算机中,常用的进制有二进制、八进制和十六进制。
本次实验旨在探索进制之间的转换方法,并通过实验验证这些方法的正确性和有效性。
实验目的1. 理解二进制、八进制和十六进制的概念及其应用场景。
2. 掌握不同进制之间的相互转换方法。
3. 验证进制转换方法的正确性和有效性。
实验方法1. 二进制与八进制的转换对于二进制转八进制,需要先将二进制数按照三位一组进行划分,形成八进制的表示形式。
每个三位二进制数可以直接对应到一个八进制数。
2. 二进制与十六进制的转换对于二进制转十六进制,需要先将二进制数按照四位一组进行划分,形成十六进制的表示形式。
每个四位二进制数可以直接对应到一个十六进制数。
3. 八进制与十六进制的转换对于八进制转十六进制,需要先将八进制数转换为二进制数,然后再将二进制数转换为十六进制数。
实验结果与分析1. 二进制与八进制的转换以二进制数1011101为例,将其划分为三位一组得到八进制数的表示形式为:1011101 →001 011 101 →135经过验证,将八进制数135重新转换为二进制数,得到:001 011 101 →1011101,与原始二进制数一致。
说明二进制与八进制之间的转换方法是正确的。
2. 二进制与十六进制的转换以二进制数11011101为例,将其划分为四位一组得到十六进制数的表示形式为:11011101 →1101 1101 →DD经过验证,将十六进制数DD重新转换为二进制数,得到:1101 1101 →11011101,与原始二进制数一致。
说明二进制与十六进制之间的转换方法是正确的。
3. 八进制与十六进制的转换以八进制数175为例,将其转换为二进制数得到:001 111 101。
再将二进制数001 111 101转换为十六进制数,得到:1F。
经过验证,将十六进制数1F重新转换为八进制数,得到:1F →001 111 →175,与原始八进制数一致。
数制转换的实验报告
数制转换的实验报告数制转换的实验报告引言:数制转换是计算机科学中的基础知识之一,它涉及将一个数值从一种数制(如十进制)转换为另一种数制(如二进制或八进制)。
本实验旨在通过实际操作,探索数制转换的原理和方法,并验证其准确性和有效性。
实验步骤:1. 十进制转二进制:首先,我们选择一个十进制数值作为转换的对象。
例如,将十进制数值27转换为二进制。
根据数制转换的原理,我们将27除以2,得到商13和余数1。
然后,将商13再次除以2,得到商6和余数1。
重复这个过程,直到商为0为止。
最后,将所有的余数按照从下往上的顺序排列,得到二进制数值11011。
通过验证,我们发现转换结果与预期相符。
2. 十进制转八进制:在这个实验中,我们将十进制数值63转换为八进制。
与十进制转二进制类似,我们将63除以8,得到商7和余数7。
然后,将商7再次除以8,得到商0和余数7。
最后,将所有的余数按照从下往上的顺序排列,得到八进制数值77。
通过验证,我们发现转换结果与预期相符。
3. 二进制转十进制:在这个实验中,我们将二进制数值101010转换为十进制。
根据数制转换的原理,我们将二进制数值的每一位与2的幂相乘,然后将结果相加。
例如,1*2^5 + 0*2^4 + 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 32 + 0 + 8 + 0 + 2 + 0 =42。
通过验证,我们发现转换结果与预期相符。
4. 八进制转十进制:在这个实验中,我们将八进制数值76转换为十进制。
与二进制转十进制类似,我们将八进制数值的每一位与8的幂相乘,然后将结果相加。
例如,7*8^1 +6*8^0 = 56 + 6 = 62。
通过验证,我们发现转换结果与预期相符。
实验结论:通过以上实验,我们验证了数制转换的原理和方法的准确性和有效性。
数制转换在计算机科学中起着重要的作用,它不仅可以帮助我们理解计算机内部的数据表示方式,还可以用于编程、数据存储和网络通信等方面。
进制转换问题实验报告
一、实验目的1. 理解不同进制之间的转换原理。
2. 掌握二进制、八进制、十进制和十六进制之间的转换方法。
3. 培养学生运用进制转换解决实际问题的能力。
二、实验原理进制转换是计算机科学中的一项基本技能,不同的进制表示方式具有不同的特点。
二进制是一种基数为2的计数系统,使用0和1两个数字表示。
八进制、十进制和十六进制分别以8、10和16为基数,使用0-9和A-F(大写或小写)的数字表示。
进制转换的基本原理是将一个数的每一位按照基数进行转换,然后根据需要调整小数点位置。
三、实验内容1. 二进制与十进制之间的转换2. 八进制与十进制之间的转换3. 十六进制与十进制之间的转换4. 不同进制之间的转换四、实验步骤1. 二进制与十进制之间的转换(1)将二进制数转换为十进制数将二进制数按位权展开,求和得到十进制数。
例如:二进制数1101转换为十进制数为12^3 + 12^2 + 02^1 + 12^0 = 13。
(2)将十进制数转换为二进制数使用除以2取余法,将十进制数转换为二进制数。
例如:十进制数13转换为二进制数为1101。
2. 八进制与十进制之间的转换将八进制数按位权展开,求和得到十进制数。
例如:八进制数17转换为十进制数为18^1 + 78^0 = 15。
(2)将十进制数转换为八进制数使用除以8取余法,将十进制数转换为八进制数。
例如:十进制数15转换为八进制数为17。
3. 十六进制与十进制之间的转换(1)将十六进制数转换为十进制数将十六进制数按位权展开,求和得到十进制数。
例如:十六进制数1A转换为十进制数为116^1 + 1016^0 = 26。
(2)将十进制数转换为十六进制数使用除以16取余法,将十进制数转换为十六进制数。
例如:十进制数26转换为十六进制数为1A。
4. 不同进制之间的转换(1)将二进制数转换为八进制数将二进制数每三位一组,分别转换为对应的八进制数。
例如:二进制数11011011转换为八进制数为216。
数制转化实验报告
一、实验目的1. 理解数制转化的基本原理和方法。
2. 掌握十进制、二进制、八进制和十六进制之间的相互转换。
3. 熟悉汇编语言编程,提高编程能力。
二、实验环境1. 操作系统:Windows 102. 编译器:Keil uVision 53. 汇编语言:x86汇编语言三、实验内容1. 十进制到二进制的转换2. 二进制到八进制的转换3. 八进制到十六进制的转换4. 十六进制到十进制的转换四、实验步骤1. 十进制到二进制的转换(1)定义变量:src为十进制数,dst为二进制数。
(2)编写程序:```assemblymov ax, src ; 将十进制数src存入寄存器axmov cx, 32 ; 初始化循环计数器cx为32(二进制数32位)mov bx, 0 ; 初始化二进制数dst为0convert_loop:shl ax, 1 ; 将ax左移一位,最高位进入进位标志位jc carry_bit; 如果进位标志位为1,则跳转到carry_bitjmp next_bitcarry_bit:or bx, 1 ; 如果进位标志位为1,则将bx最低位设为1next_bit:loop convert_loop ; 循环32次mov dst, bx ; 将转换后的二进制数存入变量dst```(3)运行程序,查看结果。
2. 二进制到八进制的转换(1)定义变量:src为二进制数,dst为八进制数。
(2)编写程序:```assemblymov ax, src ; 将二进制数src存入寄存器axmov cx, 3 ; 初始化循环计数器cx为3(二进制数每3位转换一位八进制数)mov bx, 0 ; 初始化八进制数dst为0convert_loop:mov dx, ax ; 将ax的值复制到dxand dx, 0x07 ; 将dx与0x07进行按位与操作,保留最低3位add dl, '0' ; 将dl的值转换为对应的字符mov [dst], dl; 将转换后的八进制数存入变量dstshr ax, 3 ; 将ax右移3位,准备下一组3位loop convert_loop ; 循环3次```(3)运行程序,查看结果。
- 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