Ⅰ 單片機十進制轉二進制的程序
#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