Ⅰ PIC 16位單片機 int short word long分別佔多少位元組
變數佔用內存位元組由操作系統決定,
64位系統中,long佔用8位元組,……
32位操作系統中,int,long佔用4位元組,short佔用2位元組……
16位系統中,int佔用2位元組,……
數字3佔用多少,和你聲明的的類型有關,
在32位系統中,將3賦值給short型變數,他就佔用2個位元組,如果賦值給int型,他就佔用4個位元組
可以用sizeof這個函數來計算。例子:
int
x,
n;
n
=
sizeof(x);
n的值就是結果。
Ⅱ 單片機int的取值范圍
單片機int的取值范圍:
int 占兩個位元組 范圍:-32768~+32767
(2)單片機的long擴展閱讀:
單片機是大二計算機專業科目,還有其他的單片機單位,如下:
1、long佔四個位元組 范圍:-2147483648~+2147483647
2、float佔四個位元組 范圍:3.40E+38 ~ +3.40E+38
3、double佔8個位元組 范圍:-1.79E+308 ~ +1.79E+308
51單片機是對所有兼容Intel 8031指令系統的單片機的統稱。該系列單片機的始祖是Intel的8004單片機,後來隨著Flash rom技術的發展,8004單片機取得了長足的進展,成為應用最廣泛的8位單片機之一。
Ⅲ 單片機 unsigned long轉字元串問題
可以把數據的每一位,通過取余和除法取出來,然後把數據轉換成字元。單個字元就可以處理成字元串使用。也可以看一下有沒有適合你的標准C的轉換函數。
Ⅳ keil中long和int的取值范圍分別是多少
long型取值是32位,至於int型,取決於你的「Keil」。對於Keil MDK開發包,其針對的是32位單片機,int型是32位的;對於Keil 51開發包,其針對的是8位單片機,int型是16位的。操作方法如下:
1、首先打開STC-ISP軟體,點選kiel模擬設置。
Ⅳ 單片機將一個long型發給電腦
long型變數佔4個位元組,因此可分4次發出去
另一種方法將其轉化為十進制字元形式,分離出個十百千...
分10次發送出去,最大值好像是10位,42億多(無符號型)
由於字元太多,為了便於識別,記得完整發送一次後加標點符號
Ⅵ 51單片機long,double,float,int范圍是多大,各多少位元組
在keilC51或者iar for c8051編譯器下:
一、int 占兩個位元組 范圍:-32768~+32767
二、long佔四個位元組 范圍:-2147483648~+2147483647
三、float佔四個位元組 范圍:3.40E+38 ~ +3.40E+38
四、double佔8個位元組 范圍:-1.79E+308 ~ +1.79E+308
51單片機是對所有兼容Intel 8031指令系統的單片機的統稱。該系列單片機的始祖是Intel的8004單片機,後來隨著Flash rom技術的發展,8004單片機取得了長足的進展,成為應用最廣泛的8位單片機之一。
(6)單片機的long擴展閱讀:
51單片機功能特性
1、可以模擬63K程序空間,接近64K 的16位地址空間;
2、可以模擬64Kxdata 空間,全部64K 的16位地址空間;
3、可以真實模擬全部32 條IO腳;
4、完全兼容keilC51 UV2 調試環境,可以通過UV2 環境進行單步,斷點, 全速等操作;
5、可以使用C51語言或者ASM匯編語言進行調試 ;
6、可以非常方便地進行所有變數觀察,包括滑鼠取值觀察,即滑鼠放在某 變數上就會立即顯示出它此的值;
7、可選 使用用戶晶振,支持0-40MHZ晶振頻率;
8、片上帶有768位元組的xdata,您可以在模擬時選 使用他們,進行xdata 的模擬;
9、可以模擬雙DPTR 指針;
10、可以模擬去除ALE 信號輸出. ;
11、自適應300-38400bps 的所有波特率通訊;
12、體積非常細小,非常方便插入到用戶板中.插入時緊貼用戶板,沒有連接電纜,這樣可以有效地減少運行中的干擾,避免模擬時出現莫名其妙的故障;
13、模擬插針採用優質鍍金插針,可以有效地防止日久生銹,選擇優質園腳IC插座,保護模擬插針,同時不會損壞目標板上的插座. ;
14、模擬時監控和用戶代碼分離,不可能產生不能模擬的軟故障;
15、RS-232介面不計成本採用MAX202集成電路,串列通訊穩定可靠,絕非一般三極體的簡易電路可比。
Ⅶ 單片機變數定義類型
C語言中,變數一般有兩種屬性,分別是:存儲類別、數據類型。
例如定義一個變數:static unsigned char var = 0; 上述語句中,static(靜態的)為變數的存儲類別,unsigned char(無符號字元型)為變數的數據類型,var為變數名,初始化值為0。
下面給你說明幾點。
存儲類別:即變數在代碼運行期間的存儲方式。c語言提供了4種,分別是:auto(自動的)、static(靜態的)、extern(外部的)、register(寄存器的)。
默認情況下,如果不加存儲類別,則該變數是auto類的,該關鍵字可以省略,其它三個不能省。static的用法是,定義一個局部變數,該變數只進行一次初始化,在程序運行期間一直佔用著內存,每次調用完畢都保持本次調用完後得到的值(而auto調用完一次即釋放內存,下次調用用從新進行初始化)。extern:一個變數被定義成全局變數,加上該關鍵字,意思是提醒編譯器,該變數是在別的C文件中(即你想再一個C文件中調用另外一個C文件的變數,需用該關鍵字進行引入)。register:定義一個變數為該存儲類型,建議編譯器將該變數存放在CUP內部寄存器中,以便該變數頻繁調用而提高代碼運行速度。注意,它是建議型的,一般用在循環次數多的地方,因為變數一般存放在內存中,每次CUP訪問它都得跑到內存去提取,次數多了,影響運行速度。放在內部寄存器就快多了(當然放不放我們不知道,只是建議編譯器這么做),這種變數也是用完就釋放。
數據類型:C語言提供了三種基本數據類型:char型 int型 float型。
默認情況下,char/int/float是指有符號的,即前面都省略了signed關鍵字,如果需要定義成無符號型的,需在前面加上不可省略的unsigned關鍵字。char佔一個位元組,int佔2個位元組(在有的環境下是4個位元組),float佔4個。表示的數據范圍也比較明確,char一個位元組8位,共256種狀態,有符號的最高位表示符號,0為正,1為負,其餘7位表示數字位,2的7次方。int型16位 的,一樣。float型的數據必須要有小數點,一般float能表示6~7位有效數字。上述的數據類型中,如果范圍還不夠大,還可以定義成long型,即長整型,佔4個位元組,而浮點型可以定義成double型,可以表示16~17為小數,當然,它也只佔四個位元組。
Ⅷ C52單片機lcd1602如何顯示long數據
用sprintf比較簡單點.就是耗內存.
也可以自己編寫一個函數,把long 型數據,逐個取位,再變成字元.送入LCD1602顯示.
Ⅸ 單片機數據存儲問題
我想到的方法每個11位數的電話號最少要5個位元組。
方法一:定義一個long變數,long變數的范圍是一個十位數,電話號第1位肯定是1,剩下10位數
一個long變數保存9位數,再定義一個char變數保存剩下的1位,char變數加一個long變數一共要5個位元組。
方法二:電話號第1位肯定是1,剩下的10位數用10個BCD碼保存,一個位元組可以保存兩個BCD嗎,也是5個位元組
5*100=500,所以保存100個電話號最少500個位元組,也就是0.5k的容量
這只是我的方法,僅供參考
Ⅹ 單片機 為什麼把這個int換成long這個子程序就會無限運行
那是不可能的,你用哪種都一樣的。