51微控制器中C語言int能轉換為字串型別嗎?怎麼轉換

時間 2021-05-05 17:00:31

1樓:匿名使用者

因為是c51, 所以不能用 vc++裡面的c語言** eg: itoa, 也不要用列印的 eg: sprintf

為什麼? 因為c51的記憶體太小 ,如果這樣用非常佔用資源. 下面的朋友回答就顯得不夠專業了.

所以, 一般我們是這樣自己寫**使用實現的: 字串改為陣列的形式unsigned char dat[5];

dat[4]=num/10000+'0';

dat[3]=num%10000/1000+'0';

dat[2]=num%1000/100+'0';

dat[1]=num%100/10+'0';

dat[0]=num%10+'0'

2樓:匿名使用者

用 itoa函式可以參考

/* itoa example */

#include

#include

int main ()

3樓:匿名使用者

使用編譯器帶的庫,一般都有sprintf這個函式,sprintf(str, "%d", i); code會增加的有些多

4樓:

你 char 一下不就好了。就是要注意值

5樓:匿名使用者

unsigned int a;

unsigned char b;

b=(unsigned char)a;

c語言浮點型轉換為整型怎麼轉換的?

6樓:匿名使用者

第一種是bai利用系統預設的轉換,du即將小數部分zhi截去dao,僅保留整數部分回,如3.6轉換答為3,-5.68轉換為5。

第二種是強制型別轉換,效果與第一種相同,如(int)(-6.666)為-6。

如有其他特殊要求,則需要程式設計解決。

7樓:匿名使用者

c語言中沒有四捨五入,將浮點型轉換成整形時,只保留小數點前面的數值

8樓:匿名使用者

float ftemp;

不要後面bai

的=0;因為一旦你分配du給ftemp了值,它zhi是無法通過dao鍵盤寫入的方式賦給

回的,因為空答間已經被佔用。這不是a=b+c這樣表示式的賦值。

暈,難道要我把源**給你你直接複製?

那就給你吧!

#include

void main()

隨便輸入一個數,然後回車,看結果

9樓:程式猿3號

c語言復有以下幾種取整方法:

1、直接制賦值給整bai

數變數。如:

int i = 2.5; 或 i = (int) 2.5;

這種du方法採用的zhi是捨去小數部分,能dao用於你的問題。

2、c/c++中的整數除法運算子「/」本身就有取整功能(int / int),而下面介紹的取整函式返回值是double。整數除法對正數的取整是捨去小數部分,能用於你的問題。不過整數除法對負數的取整結果和使用的c編譯器有關。

3、使用floor函式。floor(x)返回的是小於或等於x的最大整數。如:

floor(2.5) = 2

floor(-2.5) = -3

4、使用ceil函式。ceil(x)返回的是大於x的最小整數。如:

ceil(2.5) = 3

ceil(-2.5) = -2

floor()是向負無窮大舍入,floor(-2.5) = -3;ceil()是向正無窮大舍入,ceil(-2.5) = -2。floor函式能用於你的問題。

5、int b = (int)a;//取整int c = (int)(a+0.5);//四捨五入

51微控制器C語言控制頻率原理,51微控制器改變頻率怎麼實現,最好是用C語言程式

1全部假設你的51微控制器用的晶振是12mhz的,那麼可以得到如下結論 51執行一個指令的時間週期是1us,這個是51的基礎知識,就不深入講解了。然後,如果用定時器0確定輸出頻率,假設定時器0的tl0初始值是0x01,那麼當tl0變為0x02時,就是經過了1us時間 這個懂吧?那麼,設定定時器0為工...

51微控制器c語言延時函式 void delay 1ms un

杜哥是個小天才 c程式中可使用不同型別的變數來進行延時設計。經實驗測試,使用unsigned char型別具有比unsigned int更優化的 在使用時應該使用unsigned char作為延時變數。以某晶振為12mhz的微控制器為例,晶振為12mhz即一個機器週期為1us。void delay ...

微控制器c語言int和char有什麼區別

佔用的空間不同,微控制器的儲存器很小,儘量不要浪費空間,能用小的就用小的。char 是1個位元組,int是2個位元組,一般都用無符號的。 表示的資料型別不同 int是表示數值型變數的,char是表示字元型變數的 佔用的儲存空間不同 int在32位機器下佔用4個位元組,char在相同機器下佔用1個位元...