|
bit是C51編譯器的一種擴充數據類型,利用它可定義一個位標量,但不能定義位指針,也不能定義位數組。它的值是一個二進制位,不是0就是1,類似一些高級語言中的Boolean類型中的True和False。事實上,bit和數據類型為int,char等具有許多相同特性。 1. 值域: 以char為例。Char為8位一個字節的數據類型,取值范圍為 -128到+127。而bit只有1位,只能表示0和1兩種值。通常bit定義的變量作為一個標志位用。 2.類型定義: 例如一個數據為25,那么它就可以定義為char型、int型等。因為他們都在自己的值域內。同樣一個在自己值域的數0和1就可以定義為bit型。Bit可以指定函數返回值的類型, 如bit display(),也可對別的類型的數據進行數據強制轉換,如x=(bit)y, (y為char,int型等)。此時,x的值便為0或1。那么如何確定x是0還是1呢? 現在看下面例題:
bit lcd_busy()
{
bit result;
LCD_RS = 0;
LCD_RW = 1;
LCD_EN = 1;
delayNOP();
result = (bit)(P0&0x80);
LCD_EN = 0;
return(result);
}
在上面例題中我們可以看到,bit定義了一個函數返回值類型 bit lcd_busy(),一個變量 result 和 一個運算表達式 P0&0x80 .由此可以bit的用法和char、int等相同。那么resulit的值如何確定呢? 這個和運算表達式 P0&0x80有關。如果表達式 P0&0x80的運算結果為非零的值,那么resulit的值為1,否則為0。
|
|