一、位、字節和字
術語位、字節和字用于描述計算機數據單位或計算機存儲單位。這里主要指存儲單位。
最小的存儲單位稱為位(bit)。它可以容納兩個值(0或1)之一(或者可以稱該位被置為“關”或“開”),不能在一個位中存儲更多的信息,但是計算機中包含數量極其眾多的位。位是計算機存儲的基本單位。
字節(byte)是常用的計算機存儲單位。幾乎對于所有的機器,1個字節均為8位。這是字節的標準定義,至少在衡量存儲單位時是這樣(C語言中對此有不同的定義)。由于每個位或者是0或者是1,所以一個8位的字節包含256(2的8次方)種可能的0、1組合。這些組合可用于表示0到255的整數或者一組字符。這種表示可以通過二進制編碼(僅使用0或1方便地表示數字)來實現。
對于一種給定的計算機設計,字(word)是自然的存儲單位。對于8位微機,比如原始的Apple機,一個字正好有8位。使用80286處理器的早期IBM兼容機是16位機,這意味著一個字的大小為16位。基于Pentium的PC機和Macintosh PowerPC中的字是32位。現在普遍的計算機是64位,但更強大的計算機還可以有更長位數的字。
二、整數類型與浮點數類型
對于人,整數和浮點數的區別在于它們的書寫。對于計算機,區別在于它們的存儲方式。下面分別對它們進行介紹。
1、整數
整數(integer)就是沒有小數部分的數。在C中,小數點永遠不會出現在整數的書寫中。例如1、-23和4561都是整數。數3.14、0.77和8.000都不是整數。整數以二進制數字存儲。例如整數9的二進制表示為1001,在8位的字節中存儲它需要將前4位置0,后4位為1001,即00001001。
2、浮點數
浮點數(floating-point)差不多可以和數學中的實數(real number)概念相對應。實數包含了整數之間的那些數。1.75、2.16E7、3.00和4e-8都是浮點數。注意,加了小數點的數是浮點型值,所以3是整數類型,而3.00是浮點型。書寫浮點數有多種形式。2.16E7表示2.16乘以10的7次方(即1后面帶有7個0),7稱為10的指數。
這里最重要的一點是浮點數與整數的存儲方案不同。浮點數表示法將一個數分為小數部分和指數部分并分別存儲。因此盡管7.00和整數7有相同的值,但它們的存儲方式不同。與機器中的二進制存儲方式相似,在十進制中5.0可表示為0.5E1,這里的0.5是小數部分,1是指數部分。當然,計算機的內部存儲使用二進制數字,它使用2的冪而非10的冪。
這里我們先只關注這兩種類型在應用中的區別:
①整數沒有小數部分;浮點數可以有小數部分
②浮點數可以表示比整數范圍大得多的數
③對于一些算術運算(例如兩個很大的數相減),使用浮點數會損失更多的精度
④因為在任何區間內(比如1.0和2.0之間)都存在無窮多個實數,所以計算機浮點數不能表示區域內所有的值。浮點數往往只是實際值的近似。例如,7.0可能以浮點值6.99999存儲。
⑤浮點運算通常比整數運算慢。不過,已經開發出了專門處理浮點運算的微處理器,它可以縮小速度上的差別。
審核編輯:湯梓紅
-
計算機
+關注
關注
19文章
7536瀏覽量
88643 -
微處理器
+關注
關注
11文章
2274瀏覽量
82776 -
C語言
+關注
關注
180文章
7614瀏覽量
137720 -
浮點數
+關注
關注
0文章
61瀏覽量
15909
原文標題:C語言中位、字節和字以及整數類型與浮點數類型的比較
文章出處:【微信號:雨飛工作室,微信公眾號:雨飛工作室】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論