c筆記02---數據類型

1.    整型 int
    signed short int 有符號短整型,簡寫:short/int,字長 2 字節(16 位),範圍:-32768~32767(也有的計算機裏面,int 是 4 位)
    signed long int 有符號長整型,簡寫:long,字長 4 字節 ;
    unsigned short int 無符號短整型,簡寫 unsigned int,2 字節,範圍:0~65535;
    unsigned long int 無符號長整型,簡寫 unsigned long,4 字節。
    size_t 無符號整型,在不同編譯器上都是 4 字節,代替 unsigned int

2.    浮點型 float
    float 單精度浮點數,字長 4 字節
    double 雙精度,8 字節

3.    字符型 char
    字長 1 字節
    字符串聲明:char ss[20];

4.    隱式類型轉換會把佔地小的數據轉換成佔地大的數據,如果數據大小一樣會把有符號的數據轉換成無符號的數據。

5.    C 語言中支持如下邏輯操作符(==, !=, >, >=, <, <=, &&, || )
    && 都爲真才爲真;
    || 有一個爲真即爲真;
    && 和 || 具有短路特性
    ! 也是一個邏輯操作符,可以對一個邏輯表達式的結果求反。
    
    數學操作符優先級高於邏輯操作符

    & 表示按位與,可以對兩個二進制補碼進行計算得到一個新的二進制補碼。它可以把某個補碼中特定的位置清 0。

    | 表示按位或,可以對兩個二進制補碼進行計算得到一個新的二進制補碼。它可以把某個補碼中特定的位置設置成 1。

    ^ 表示按位亦或。它可以把某個已知的補碼中特定位置變成相反數字。

    ~ 表示按位求反,可以對一個二進制補碼進行計算得到一個新的二進制補碼。

    << 表示左移操作,可以把一個補碼向左移動指定的位數。
    如果移動後沒有丟失有效信息則新數據是原有數據的 2 的 n 次方倍。

    >> 表示右移操作,可以把一個補碼向右移動制定的位數。如果被移動的數字是無符號數則左邊補充 0,否則左邊補充符號位。
    如果移動後沒有丟失有效信息則原數據是新數據的 2 的 n 次方倍。
    
6.    分別寫出 bool, int, float, 指針類型的變量 a 與 “零” 的比較語句。
    bool :
        if ( !a ) or if(a)
    int :
        if ( a == 0)
    float :
        const float EXP = 0.000001        // 定義一個精度,詳見下面分析;
        if ( a <= EXP && a >= -EXP)            // 在這個精度範圍內,就認爲是 0;
    pointer :
        if ( a != NULL) or if(a == NULL)

    分析:說明 EXP 是一個精度類型,計算機中數據以二進制存儲,將浮點數的零轉爲二進制存儲是有誤差的;
    所以,在精度範圍內,我們就認爲是零;這樣的話,就不能直接用等於或者不等於了,而需要用一個範圍來表示;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章