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