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.或者...