C51微控制器中如何把float的變數取出它的整數存入

2021-04-18 19:53:04 字數 2474 閱讀 6868

1樓:匿名使用者

用c語言的強制型別轉換就可以吧!

2樓:冰酃寒炫

比如:float a;

unsigned char b;

b=(unsigned char)(int)a;

有些編譯copy器float直接轉換bai成duunsigned char 會有警告,所以先轉

zhi換成int型,再轉dao成unsigned char型。

c51微控制器中如何把 一個float 的變數取出它的整數存入一個unsingde char變數中?請問你這問題是怎麼解決的

3樓:橡樹葉ノ羈絆

使用強制型別轉換

bai即可du

#define uchar unsigned charfloat f = 2.577;

uchar a;

a = (uchar) f; //用uchar將float強制型別zhi轉換至無符號字元型

注意dao這種情況下對f的符號處回理,我記不太清答c語言是怎麼規定的,如果不放心可以手動處理符號,如果為負就所有位取反加一

4樓:匿名使用者

使用強制型別轉換即可.

微控制器中怎麼宣告位變數?就是僅有一位的變數那種,是bit a嗎?

5樓:我是大李小李

是的,對於c51微控制器來說,以下有以下型別變數:

bit a 1位

專unsigned char a,或者char a 8位unsigned short a 或者 short a 16位unsigned long a或者 long a 32位unsigned int a 或者 int a 16位,注意,int是與屬編譯器有關的,對於 c51,int等效於short

float 或者 double 對於 51來說,都是一樣的,32位。

6樓:美食拍客

是sbit

如sbit led=p0^1;

8位微控制器如果要處理float的怎麼辦

7樓:匿名使用者

可以定義float變數,進行float運算,比較耗時,一般採用放大到整數再運算。

8樓:匿名使用者

你可以在8位微控制器中定義float變數,一個float一般佔用4位元組,但是算術運算非常耗時間,不推薦使用float, 你可以使用整型的替代,比如把它放大到整數,長整型都行.

9樓:晨號號

你可以在8位微控制器中定義float變數/你可以使用整型的替代,比如把它放大到整數.

c語言微控制器程式設計中,怎樣將一個串列埠的到得字串賦值給一個陣列

10樓:匿名使用者

1、串列埠字bai節為:dusbuf

暫存陣列:a

依次將接收到zhi的位元組存入a[0],a[1],a[2],...a[n],

接收完畢,存入字元

dao串結束標回識:a[n+1]=0

a就代表一答個字串。

如果是一串數字,要轉為整數。

2、例程:

#include

#define uchar unsigned charuchar a[16],num;

void uart() interrupt 4}main()

11樓:g肯定

你得註釋

bai, 越看頭越大du, unsigned char fifo_head=0; //往fifo寫入

資料時zhi的dao位置版unsigned char fifo_tail=0; // 讀出fifo時的位置unsigned char rx1_pos=0; //當前的接收權位置unsigned char rx1_num=0; //資料長度unsigned char frame_in=

12樓:匿名使用者

串列埠位元組為:sbuf

暫存陣列:a

依次將接收到的位元組存入a[0],a[1],a[2],...a[n],接收完畢,存入字串結束標識:內a[n+1]=0a就代表一個字串。容

如果是一串數字,要轉為整數:

int temp=0;

char i;

for(i=0;i

如果串列埠接收的是數字的ascii碼字串,則:

for(i=0;a[i]!=0;i--)

temp為所得整數。

13樓:匿名使用者

要想一個字元一個字元的賦值,就老老實實寫個迴圈吧

14樓:匿名使用者

#include

#define uchar unsigned charuchar a[16],num;

void uart() interrupt 4}main()

微控制器c51怎樣才能學好

步驟 1.找本書大概瞭解一下微控制器結構,大概瞭解就行。不用都看懂,又不讓你出書的。三天 2.找學習板練習編寫程式,學微控制器就是練程式設計序,遇到不會的再問人或查書。二十天 3.自己網上找些小電路類的資料練習設計外圍電路。焊好後自己除錯,熟悉過程。十天 4.自己完全設計具有個人風格的電路,產品,你...

我想問問,我能否在微控制器C51中定義空陣列,然後向裡面寫值,改變值

完全可以而且必要的,比如說在非同步序列收發應用中,就是用一個陣列來做資料快取的。定址方便不易出錯。微控制器的記憶體少的可憐,定義陣列要根據需求來定義,數值不超過256,就要用unsigned char型的。比如unsigned char a 10 注意,後面的10是必要的。這是在做微控制器程式,必須...

主流C51微控制器編譯器比對,在MCS 51微控制器中怎麼用CJNE指令比較兩數大小

int short 的大小是因機器而異嘛 準確點應該是編譯器 你都說了人家規定的是 最小 為16位,又不是隻能是16位,也沒有說兩者應該相等 事實上是short不超過int就ok啦 所以當然可以short型別為半個機器字長,而int型別則為一個機器字長的啦。c 標準規定了每個算術型別的最小儲存空間,...