Ⅰ 单片机十进制转二进制的程序
#include<stdio.h>
#define MAX 32
int main(void)
{
int i=0,n,a[MAX];
printf("请输入一个十进制整数:\n");
scanf("%d",&n);
while (n>0) //循环过程的始终,判断n是否能被2除尽
{
a[i] = n%2; //用数组存储每次除以2之后的余数,即断定奇偶性,对应二进制位上数值
i = i+1;
n = n/2;
}
printf("十进制整数转换为二进制数是:\n");
for(; i > 0; i--)
printf("%d",a[i-1]);
printf("\n");
return 0;
}
Ⅱ 单片机十六进制如何转成二进制数
不用转换,计算机内的数据都是以二进制保存的。几进制数,只是以不同的方式来显示。本质上是一样的。
Ⅲ 单片机程序中怎么把16进制转变成2进制
单片机中数值都是2进制的。
MOV A,#1111B
MOV A,#0FH
MOV A,#16
结果都是一样的。
Ⅳ 单片机中0xff,oxfe,0xf7这种如何转换成二进 ,求方法
一位16进制数刚好对应4位二进制数,首先知道ABCDEF代表十进制多少,然后按8421只管分就行了,如总数值超过(或等于)8 第1位(从高位算)写1,总数减去8剩余部分若超过4,第二位写1,将剩余部分减4超2第三位写1...不足就写0,转换次多了就发现很简单,如果实在不会,也可以用工程计算器来计算
如0XEF,先转化高4位,E代表十进制14,14大于8所以第1位写114-8=66大于4,所以第2位仍写16-4=22等于2第3位仍写12-2=00小于1,所以第4位写0,因此十六进制E化成二进制就是1110
另外记住几个常用的特殊值1000010000100001分别代表8 4 2 1
1110110110110111分别是E D B 7
Ⅳ 单片机十六进制数如何转换成二进制数
unsigned char num; //定义一个8位数
if(num&(1<<n))
...;//num 的第N位是1
else
...;//num 的第N位是0
当然可以放在一个循环里面
for(unsigned char i=0;i<8;i++) {
if(num&(1<<n))
...;//num 的第N位是1
else
...;//num 的第N位是0
}
Ⅵ 单片机怎么把BCD码转换成二进制啊
BCD码要转换成二进制,需要先转换为十六进制,再转换为二进制就很方便了,比如:
BCD码:32H,转换为十六进制为:20H(3*10+2=32=20H),对应二进制为:00100000