主頁 > 百科知識 > 一個數(shù)字占幾個字節(jié)

一個數(shù)字占幾個字節(jié)

時間:2024-12-19 15:17:00 瀏覽量:

一個數(shù)字是一個字節(jié)。

字節(jié)的標(biāo)準(zhǔn)定義:一個字節(jié)均為8位。由于上述所講每個位或者是0或者是1,所以一個8位的字節(jié)包含256種可能的0,1組合。

整數(shù)要根據(jù)類型,一般是極其的字長。比如16位機(jī)整數(shù)就是16位Bit,兩個字節(jié)。32位機(jī)就是4字節(jié)。還有int64類型的整數(shù)。

至于實數(shù)在C中,有32位(float)和64位(double)之分。其他語言中有類型80位的,叫擴(kuò)展精度實數(shù).主要是在cpu內(nèi)部的擴(kuò)展精度實數(shù)寄存器,是80位的。保證在double實數(shù)運算是不損失精度。

擴(kuò)展資料:

字符與字節(jié)

ASCII碼:一個英文字母(不分大小寫)占一個字節(jié)的空間,一個中文漢字占兩個字節(jié)的空間。一個二進(jìn)制數(shù)字序列,在計算機(jī)中作為一個數(shù)字單元,一般為8位二進(jìn)制數(shù),換算為十進(jìn)制。最小值-128,最大值127。如一個ASCII碼就是一個字節(jié)。

UTF-8編碼:一個英文字符等于一個字節(jié),一個中文(含繁體)等于三個字節(jié)。中文標(biāo)點占三個字節(jié),英文標(biāo)點占一個字節(jié)

Unicode編碼:一個英文等于兩個字節(jié),一個中文(含繁體)等于兩個字節(jié)。中文標(biāo)點占兩個字節(jié),英文標(biāo)點占兩個字節(jié)

數(shù)據(jù)存儲是以“字節(jié)”(Byte)為單位,數(shù)據(jù)傳輸大多是以“位”(bit,又名“比特”)為單位,一個位就代表一個0或1(即二進(jìn)制),每8個位(bit,簡寫為b)組成一個字節(jié)(Byte,簡寫為B),是最小一級的信息單位。

硬盤生產(chǎn)商是以GB(十進(jìn)制,即10的3次方=1000,如1MB=1000KB)計算的,而電腦(操作系統(tǒng))是以GiB(2進(jìn)制,即2的10次方, 如1MiB=1024KiB)計算的,但是國內(nèi)用戶一般理解為1MiB=1M=1024 KB, 所以為了便于中文化的理解,翻譯MiB為MB也是可以的。

同樣根據(jù)硬盤廠商與用戶對于1MB大小的不同理解,所以好多160G的硬盤實際容量按計算機(jī)實際的1MiB=1024KB算都不到160G,這也可以解釋為什么新買的硬盤“缺斤短兩”并沒有它所標(biāo)示的那么大。

數(shù)據(jù)類型

Byte數(shù)據(jù)類型(字節(jié)型)用一個字節(jié)(Byte)儲存,可區(qū)別256個數(shù)字,取值范圍:0到255。 Byte是從0-255的無符號類型,所以不能表示負(fù)數(shù)。具體參照數(shù)據(jù)類型。

在計算機(jī)中,一串?dāng)?shù)碼作為一個整體來處理或運算的,稱為一個計算機(jī)字,簡稱字。字通常分為若干個字節(jié)(每個字節(jié)一般是8位)。在存儲器中,通常每個單元存儲一個字,因此每個字都是可以尋址的。字的長度用位數(shù)來表示。

在計算機(jī)的運算器、控制器中,通常都是以字為單位進(jìn)行傳送的。字出現(xiàn)在不同的地址其含義是不相同。例如,送往控制器去的字是指令,而送往運算器去的字就是一個數(shù)。

字長

計算機(jī)的每個字所包含的位數(shù)稱為字長。根據(jù)計算機(jī)的不同,字長有固定的和可變的兩種。固定字長,即字長度不論什么情況都是固定不變的;可變字長,則在一定范圍內(nèi),其長度是可變的。

計算的字長是指它一次可處理的二進(jìn)制數(shù)字的數(shù)目。計算機(jī)處理數(shù)據(jù)的速率,自然和它一次能加工的位數(shù)以及進(jìn)行運算的快慢有關(guān)。如果一臺計算機(jī)的字長是另一臺計算機(jī)的兩倍,即使兩臺計算機(jī)的速度相同,在相同的時間內(nèi),前者能做的工作是后者的兩倍。

一般地,大型計算機(jī)的字長為32-64位,小型計算機(jī)為12-32位,而微型計算機(jī)為4-16位。字長是衡量計算機(jī)性能的一個重要因素。

字節(jié)

字節(jié)是指一小組相鄰的二進(jìn)制數(shù)碼。通常是8位作為一個字節(jié)。它是構(gòu)成信息的一個小單位,并作為一個整體來參加操作,比字小,是構(gòu)成字的單位。

在微型計算機(jī)中,通常用多少字節(jié)來表示存儲器的存儲容量。

例如,在C++的數(shù)據(jù)類型表示中,通常char為1個字節(jié),int為4個字節(jié),double為8個字節(jié)。

理解編碼的關(guān)鍵,是要把字符的概念和字節(jié)的概念理解準(zhǔn)確。這兩個概念容易混淆,我們在此做一下區(qū)分:

概念描述 舉例

字符人們使用的記號,抽象意義上的一個符號。 '1', '中', 'a', '$', '¥' ……

字節(jié)計算機(jī)中存儲數(shù)據(jù)的單元,一個8位的二進(jìn)制數(shù),是一個很具體的存儲空間。0x01, 0x45, 0xFA……

字符串

在內(nèi)存中,如果“字符”是以ANSI編碼形式存在的,一個字符可能使用一個字節(jié)或多個字節(jié)來表示,那么我們稱這種字符串為ANSI字符串或者多字節(jié)字符串。如,"中文123" (占8字節(jié),包括一個隱藏的\0)。

字符集

對于ANSI編碼方式,存在不同的字符集(Charset)。同樣的字節(jié)序列,在不同的字符集下表示的字符不一樣。要正確解析一個ANSI字符串,還要選擇正確的字符集,否則就可能導(dǎo)致所謂的亂碼現(xiàn)象。不同語言版本的操作系統(tǒng),都有一個默認(rèn)的字符集。

在不指定字符集的情況下,系統(tǒng)會使用此字符集來解析ANSI字符串。也就是說,如果我們在簡體中文版的Windows下打開了一個由日文操作系統(tǒng)保存的ANSI文本文件(僅包含ANSI字符串的文本文件),我們看到的將是亂碼。

但是,如果我們使用Visual Studio之類的帶編碼選擇的文本編輯器打開此文件,并且選擇正確的字符集,我們將可以看到它的原貌。注意:簡體中文字符集中的繁體字和繁體中文字符集中的繁體字,編碼不一定相同(事實證明,似乎是完全不同)。

每個字符集都有一個唯一的編號,稱為代碼頁(Code Page)。簡體中文(GB2312)的代碼頁為936,而系統(tǒng)默認(rèn)字符集的代碼頁為0,它表示根據(jù)系統(tǒng)的語言設(shè)置來選擇一個合適的字符集。

Unicode

字符串在內(nèi)存中,如果“字符”是以在Unicode中的序號存在的,那么我們稱這種字符串為Unicode字符串或者寬字節(jié)字符串。在Unicode中,每個字符都占兩個字節(jié)。如,"中文123"(占10字節(jié))。

Unicode和ANSI的區(qū)別就相當(dāng)于輸入法內(nèi)的“全角”和“半角”的區(qū)別。

由于不同ANSI編碼所規(guī)定的標(biāo)準(zhǔn)是不相同的(字符集不同),因此,對于一個給定的多字節(jié)字符串,我們必須知道它采用的是哪一種字符集則,才能夠知道它包含了哪些“字符”。

而對于Unicode字符串來說,不管在什么環(huán)境下,它所代表的“字符”內(nèi)容總是不變的。Unicode 有著統(tǒng)一的標(biāo)準(zhǔn),它定義了世界上絕大多數(shù)的字符的編碼,使得拉丁文、數(shù)字、簡體中文、繁體中文、日文等都能以同一種編碼方式保存。

© 轉(zhuǎn)乾企業(yè)管理-上海店鋪裝修報建公司 版權(quán)所有 | 黔ICP備2023009682號

免責(zé)聲明:本站內(nèi)容僅用于學(xué)習(xí)參考,信息和圖片素材來源于互聯(lián)網(wǎng),如內(nèi)容侵權(quán)與違規(guī),請聯(lián)系我們進(jìn)行刪除,我們將在三個工作日內(nèi)處理。聯(lián)系郵箱:303555158#QQ.COM (把#換成@)