1. 程式人生 > >51微控制器bit資料型別

51微控制器bit資料型別

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。