微控制器c程式16進位制轉10進位制的問題

2021-12-21 10:43:31 字數 2420 閱讀 7782

1樓:匿名使用者

最後返回c的值

比如輸入一個a=0x11(就是17)

建立b,c

執行b=a%10 //此時a=0x11(就是17) b=7 c=0

接著c=b //此時a=0x11(就是17) b=7 c=7

a=a/10 //此時a=0 b=7 c=7b=a%10 //此時a=0 b=0 c=7c=c|b<<4 //此時a=0 b=0 c=7返回c的值17

b的左移就是比如b的二進位制是00000111左移1位就是00001110,那個或者不是指兩個之中選一個,而是一種運算比如c的二進位制是0001,b左移4位是0011,那麼結果就是逐位相加不進位,0+0=0 0+0=0 0+1=1 1+1=1 (注意1+1=1,不進位),結果0011

2樓:匿名使用者

輸入一個a

建立一個b,一個c

b=a除以10的餘數

c=ba=a整除10

b=a除以10的餘數

c=c或者b的二進位制數左移4位的數

微控制器c語言中16進位制數轉10進位制數的計算公式?比如a=0x7f,用一個公式怎麼轉化為10進位制數

3樓:匿名使用者

用c語言寫程式,也不用轉換的。c語言就可以直接寫十進位制數的,內專部是什麼可以不用考慮。屬只是在顯示時,按十進位制數顯示時,取出百,十,個位就行了,也不用先轉換的。

你這樣好像是轉換了,可轉換後的數,在內部還是十六進位制數,那當然是錯的。

所以,要根據需要進行分離或者轉換。

4樓:匿名使用者

你的辦法不行。

準確地說,要把單元裡的二進數整轉換成「十進位制字串」?

有現成的轉換函式,

5樓:匿名使用者

b=(a/16)*16+a%16

6樓:匿名使用者

b=(a/16)*16+a%16 可以的

51微控制器c語言裡 怎樣將16進位制 直接化成 10進位制 5

7樓:匿名使用者

我這兒有一個進位制轉換的程式,你可以參考一下:

#include

#include

#include

int count=0;

void *tentoboh(int a,int n)else

str[i++]=t;

a=a/n;

count++;

<='9')

a+=(str[i]-'0')*(int)pow(n,i);

if(str[i]>='a'&&str[i]<='f')a+=(str[i]-'a'+10)*(int)pow(n,i);

if(str[i]>='a'&&str[i]<='f')a+=(str[i]-'a'+10)*(int)pow(n,i);

i++;

}return a;

}void main()

8樓:姜森_團泊東

u8 a,b; //定義a,b為8位二進位制數u16 temp; //定義temp為16位二進位制數temp=a<<8 | b; //將 a左移8位和b合到一起temp 就是你想要的數,(無所謂十進位制還是十六進位制)例: a=0x3b b=0xc2 那麼 temp=0x3bc2 十進位制就是15298

在程式裡面直接引用變數temp就可以,

例:u8 a,b;

a=temp/10000;

b=temp%10000;

那麼 a=1,b=5298;

9樓:匿名使用者

功能:十六進位制轉為十進位制

//// 輸入: const unsigned char *hex 待轉換的十六進位制資料

// int length 十六進位制資料長度

//// 輸出:

//// 返回: int rslt 轉換後的十進位制資料

//// 思路:十六進位制每個字元位所表示的十進位制數的範圍是 0 ~255 ,進製為 256

// 左移 8 位 (<<8) 等價乘以 256

unsigned long hextodec(const unsigned char *hex, int length)

return rslt;}

10樓:匿名使用者

c中就不存在這個問題了,不過我明白你的意思,去看看 sprintf 函式吧

11樓:雨落沉軒

應該是自動轉化的的,不用考慮

c語言編寫16進位制轉化10進位制的程式

c語言 012 十六進位制轉十進位制 如何使用c語言編寫二進位制轉換為十進位制的程式 include int main printf 二進位制為 i for i 0 i printf d b i printf n break case 2 while a 0 i for i 0 i c c 2 b ...

51微控制器C語言二進位制與十進位制能直接運算嗎

對微控制器來說,不管任何進位制的數字,在微控制器內部都是二進位制表示的。所以能直接運算。但是微控制器計算浮點數是非常耗時的,因此要優化演算法,比如你的乘以0.0625等價於除以16 1 16 0.0625 而除以16等價於算數右移4位,這樣的運算比直接乘以0.0625快幾十倍。以上的能是能算,但是,...

微控制器十六進位制加法完成

你這個程式是啥意思啊?mov r0,b mov r3,a clr 30h這裡的30h,31h和你後面用到的30h,31h代表的意思可不一樣啊,這裡是位 後面的 mov a,30h,這裡30h是位元組地址 你是想實現2位元組的bcd碼加法嗎?定義變數定義為int型別的 別定義char 定義int.或者...