单片机实验二数制转换类程序设计
【实验目的】
1.了解数制转换的基本概念及原理。
2.掌握单片机对数制转换的程序设计方法。
【实验器材】
1.STC89C52单片机实验箱
2. Keil C51开发环境
3.电源、连接线等
【实验原理】
数制转换是将一个数值在不同进制间互相转换的过程。常见的进制包括二进制、八进制、十进制和十六进制。在程序设计中,经常需要进行不同进制间的转换,例如从二进制转换为十进制
、从十进制转换为十六进制等。
【程序设计】
本实验设计一个数制转换类的程序,实现二进制、八进制、十进制和十六进制之间的转换。
基本思路:
单片机printf函数1.输入数字和当前进制。
2.根据当前进制将输入的数字转换为十进制。
3.根据目标进制将十进制数转换为目标进制并输出。
【程序示例】
```
#include <reg52.h>
#include <stdio.h>
//二进制转十进制
int binaryToDecimal(char *binary)
int length = 0;
while (binary[length] != '\0')
length++;
}
int decimal = 0;
int base = 1;
for (int i = length - 1; i >= 0; i--)
if (binary[i] == '1')
decimal += base;
}
base *= 2;
}
return decimal;
//十进制转二进制
void decimalToBinary(int decimal, char *binary)
int index = 0;
while (decimal > 0)
binary[index++] = (decimal % 2 == 1) ? '1' : '0';
decimal /= 2;
}
binary[index] = '\0';
//反转二进制字符串
int i = 0;
int j = index - 1;
while (i < j)