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個位元...