C語言入門第七篇,強制類型轉換和ASCll編碼

這篇我們再說說數據類型,我們看看下面這個例子:

#include<stdio.h>
int main()
{
    int a;
    a=9/2;
    printf("%d\n",a);
    return 0;
}

這裏聲明的變量爲整型變量,所以輸出a的值爲4,沒有小數位。有些人說用變量a用float呢?

#include<stdio.h>
int main()
{
    float a;
    a=9/2;
    printf("%f\n",a);
    return 0;
}

這樣輸出小數點後面依然沒有數值。那怎麼辦呢?這就是這一篇要講的強制類型轉換。我們在C語言中經常遇到上面的情況,我們想得到更加精確的結果。上面的情況我們只需要把其中一個數字改爲小數形式,讓編譯器知道他是小數就可以了。

#include<stdio.h>
int main()
{
    float a;
    a=9.0/2;
    printf("%f\n",a);
}

這只是常量的方式,那麼如果是變量呢?

#include<stdio.h>
int main()
{
    int a,b;
    float c;
    a=9;
    b=2;
    c=(float)a/b;
    printf("%f\n",c);
    return 0;
}

所以(float)a中的(float)就是強制類型轉換,它將a由一個整型變化成了單精度浮點數。注意強制類型轉換可能會損失精度。所有的數值類型都可以互相轉換。

下面我們來講講字符類型,前面我們說了字符類型佔一個字節,一個字節8位。我們說過計算機底層只能存儲二進制,那麼字符怎麼表示呢?聰明的人類發明了ASCll編碼,標準ASCll表由7位(最高位通常保留爲0,傳輸時作爲奇偶校驗位)二進制將128個符號和字符編碼而成。如下表:
ASCll碼錶

如果覺得上面的表看的比較暈的話,我們來看看下面的代碼:

#include<stdio.h>
int main()
{
    char b='a';
    printf("%d\n",b);
    return 0;
}

運行上面的代碼,我們就知道屏幕上顯示的是97,二進制爲‭01100001‬,而上面的表中97正好對應着小寫的a。這個表其實不用記住,大家知道字符在計算機裏面是怎麼存儲的就好了。

總結

這篇主要是說明強制類型轉換和ASCll編碼,需要自己下來多敲敲代碼,熟悉強制類型轉換,也必須清楚瞭解ASCll編碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章