|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
学习小甲鱼老师视频也有很多天了,今天在学习单片机点亮7段数码管的时候要先选择数码管要亮的灯(数码管一共有a.b.c.d.e.f.g.h个极) 选好灯后要化为二进制数 再化为十六进制数 比如 让数码管显示1 就是b.c两极点亮 二进制比特流就是 0000 0110 要输出的十六进制是 0x06 算一两个还行 要是算1—16那就要算头晕了 于是想到用c编写一个程序 让计算机来帮我解决,于是就写出了这么个东西(输入a到h就可以得到相应的答案,h是dp端 随意选择是否点亮):
http://pan.baidu.com/s/1gds0ccb 弄好的成品
#include <stdio.h>
void main()
{
while(1)
{
int i,x;
int ZZ[8]={0,0,0,0,0,0,0,0};
char ch;
printf("\n请输入数码管想要亮的字母 : ");
ch = getchar();
while(ch != '\n')
{
if(ch>='a' && ch<='h')
{
if(ch == 'a')
{
ZZ[0] = 1;
}
if(ch == 'b')
{
ZZ[1] = 1;
}
if(ch == 'c')
{
ZZ[2] = 1;
}
if(ch == 'd')
{
ZZ[3] = 1;
}
if(ch == 'e')
{
ZZ[4] = 1;
}
if(ch == 'f')
{
ZZ[5] = 1;
}
if(ch == 'g')
{
ZZ[6] = 1;
}
if(ch == 'h')
{
ZZ[7] = 1;
}
}
else
{
printf("对不起您的输入有误,请重新输入!\n");
return;
}
ch = getchar();
}
printf("二进制数为 : ");
for(i=7 ; i>=0 ; i--)
{
printf("%d",ZZ[i]);
if(i == 4)
{
printf(" ");
}
}
x=ZZ[0] + ZZ[1]*2 + ZZ[2]*4 + ZZ[3]*8 + ZZ[4]*16 + ZZ[5]*32 + ZZ[6]*64 + ZZ[7]*128;
if(x <= 16)
{
printf(" 十六进制数为 : 0x0%X\n",x);
}
else
{
printf(" 十六进制数为 : 0x%X\n",x);
}
}
}
|
-
数码管
|