1樓:匿名使用者
微控制器不清楚,我只知道在我的機子上可以用如下方法#include "stdio.h"
#include "string.h"
void main() 或者
#include "stdio.h"
#include "string.h"
union a;
void main()
2樓:鄭州條碼收款機
lxb200709 你那個絕對錯誤,
double a=0.37;
char b;
你能直接 b= (char) a;????
一樓雖然麻煩,但是確實正確的。
3樓:匿名使用者
lxb200709 正解!
鄭州條碼收款機 說得不對
1.樓主提出的問題是要轉換成char型,並不是取出相應8個位元組內的數。
2.對於你提出那個疑問也很容易解決,可以在轉換前根據想保留的有效位位數對源數乘以乙個倍數。再說了這能成問題麼?樓主並沒有說轉換後的資料要再做什麼用,可能樓主並不需要多高的精度
4樓:匿名使用者
和c裡一樣如
doulbe a;
char b;
b=(char)a;
不過注意不要溢位。。。
5樓:小a笑
將double型資料用char字串形式處理
微控制器c語言中如何將浮點型變數轉換成字串輸出
6樓:
得出的值先儲存到乙個變數中 如結果為a= 4.234 如果要保留兩位小數的話
unsigned int a=4.234*100;
unsigned char s[5];
s[0]=a/100+0x30;
s[1]='.'
s[1]=a%100/10+0x30;
s[2]=a%10+0x30;
7樓:
計算的結果(小數)比如0.33 依次顯示『0』『.』『3』『3』不就行了。
8樓:匿名使用者
用sprinft()
函式實現
微控制器c語言中char轉換成char[]陣列的問題請教
9樓:匿名使用者
示範一下,供參考
uchar * chang(uchar dat)return(b);
}至於x=1234之類的可以呼叫中的 atof(char *str)來實現。
10樓:
微控制器的p1口是八位 乙個字元佔乙個位元組 也是八位 所以你取得p1口的值就沒必要轉換陣列啊 乙個字元就夠了啊
11樓:專注本地資訊
第一種情況如下:
char a=0xaa;
char b[8];
int j[8]=;
for(i=7;i>=0;i--)
12樓:記住一座城
把每一位分離出來就可以了
c語言浮點型轉換為整型怎麼轉換的?
13樓:匿名使用者
第一種是bai利用系統預設的轉換,du即將小數部分zhi截去dao,僅保留整數部分回,如3.6轉換答為3,-5.68轉換為5。
第二種是強制型別轉換,效果與第一種相同,如(int)(-6.666)為-6。
如有其他特殊要求,則需要程式設計解決。
14樓:匿名使用者
c語言中沒有四捨五入,將浮點型轉換成整形時,只保留小數點前面的數值
15樓:匿名使用者
float ftemp;
不要後面bai
的=0;因為一旦你分配du給ftemp了值,它zhi是無法通過dao鍵盤寫入的方式賦給
回的,因為空答間已經被占用。這不是a=b+c這樣表示式的賦值。
暈,難道要我把源**給你你直接複製?
那就給你吧!
#include
void main()
隨便輸入乙個數,然後回車,看結果
16樓:程式猿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語言int能轉換為unsigned char 指標型別嗎?怎麼轉換?
17樓:匿名使用者
1、可以轉換,強制轉換就行。例如:
int a=100;
unsigned char * c = (unsigned char *)a;
2、強制型別轉換
當運算元的型別不同,而且不屬於基本資料型別時,經常需要強制型別轉換,將運算元轉化為所需要的型別。強制型別轉換具有兩種形式,稱為顯式強制轉換和隱式強制型別轉換。
顯式強制型別轉換
顯式強制型別轉換需要使用強制型別轉換運算子,格式如下:
type()
或(type)
其中,type為型別描述符,如int,float等。為表示式。經強制型別轉換運算子運算後,返回乙個具有type型別的數值,這種強制型別轉換操作並不改變運算元本身,運算後運算元本身未改變,例如:
int nvar=0xab65;
char cchar=char (nvar);
上述強制型別轉換的結果是將整型值0xab65的高階兩個位元組刪掉,將低端兩個位元組的內容作為char型數值賦值給變數cchar,而經過型別轉換後nvar的值並未改變。
18樓:匿名使用者
可以呀,將高位和地位分別賦值給兩個char變數就可以了。例如:
int x;
unsigned char al,ah;
al=x%256;
ah=x/256;
19樓:匿名使用者
可以,就是拿這個int當成指向unsigned char的指標位址,舉例如下:
int x;
unsigned char c;
c=*((unsigned char *)x); //讀取x位址指向的字元
20樓:匿名使用者
要看什麼樣的微控制器。如果要轉換的話,可以如下:
int a=0x5bce;
unsigned char *p;
p = (unsigned char *)a;
要看你的ram和rom是多大的,有些是單個位元組,那轉換完,可能會丟掉高位的。就是說0x5b會不見了,只剩下個0xce;注意點使用。
希望我的回答對你有幫助,有什麼問題歡迎一起**。
21樓:匿名使用者
可以,直接使用就好了。
unsigned char a;
int addr;
a=(unsigned char *)addr;
微控制器C語言程式
define uint unsigned int就是用unit替換unsigned int,unsigned int是c語言關鍵字,unit比較簡單 void delayms uint x 定義乙個函式,無返回值,引數是個 無符號整形的變數叫 x uchar 上面不是定義了unsigned char...
C語言微控制器程式求助
void main 這種方法原理簡單易行,缺點是精度比定時器稍低,注意不要使x y溢位。我們還可以對上面的程式優化 void main 用計數器做!和中斷 中斷設定成 邊沿觸發中斷 在中斷的同時開啟計數器,並判斷是此時高電平還是低電平,然後等到下乙個中斷到來,將計數器的內容另存,然後清空重新計數 這...
微控制器c語言轉化為組合語言
下列程式已經除錯過,樓主試試看 key1 equ p2.4 按鍵.org 0000h jmp start org 001bh jmp t1 int start mov tmod,10h t1定時方式1 mov th1,65536 20000 256 20ms 12mhz mov tl1,65536 ...