一個數字佔幾個位元組?

一個數字佔幾個位元組?冬天一起吃雪糕是udj2019-07-01 13:56:00

一個數字是一個位元組。

位元組的標準定義:一個位元組均為8位。由於上述所講每個位或者是0或者是1,所以一個8位的位元組包含256種可能的0,1組合。

整數要根據型別,一般是極其的字長。比如16位機整數就是16位Bit,兩個位元組。32位機就是4位元組。還有int64型別的整數。

至於實數在C中,有32位(float)和64位(double)之分。其他語言中有型別80位的,叫擴充套件精度實數。主要是在cpu內部的擴充套件精度實數暫存器,是80位的。保證在double實數運算是不損失精度。

擴充套件資料:

字元與位元組

ASCII碼:一個英文字母(不分大小寫)佔一個位元組的空間,一箇中文漢字佔兩個位元組的空間。一個二進位制數字序列,在計算機中作為一個數字單元,一般為8位二進位制數,換算為十進位制。最小值-128,最大值127。如一個ASCII碼就是一個位元組。

UTF-8編碼:一個英文字元等於一個位元組,一箇中文(含繁體)等於三個位元組。中文標點佔三個位元組,英文標點佔一個位元組

Unicode編碼:一個英文等於兩個位元組,一箇中文(含繁體)等於兩個位元組。中文標點佔兩個位元組,英文標點佔兩個位元組

資料儲存是以“位元組”(Byte)為單位,資料傳輸大多是以“位”(bit,又名“位元”)為單位,一個位就代表一個0或1(即二進位制),每8個位(bit,簡寫為b)組成一個位元組(Byte,簡寫為B),是最小一級的資訊單位。

硬碟生產商是以GB(十進位制,即10的3次方=1000,如1MB=1000KB)計算的,而電腦(作業系統)是以GiB(2進位制,即2的10次方, 如1MiB=1024KiB)計算的,但是國內使用者一般理解為1MiB=1M=1024 KB, 所以為了便於中文化的理解,翻譯MiB為MB也是可以的。

同樣根據硬碟廠商與使用者對於1MB大小的不同理解,所以好多160G的硬碟實際容量按計算機實際的1MiB=1024KB算都不到160G,這也可以解釋為什麼新買的硬碟“缺斤短兩”並沒有它所標示的那麼大。

資料型別

Byte資料型別(位元組型)用一個位元組(Byte)儲存,可區別256個數字,取值範圍:0到255。 Byte是從0-255的無符號型別,所以不能表示負數。具體參照資料型別。

在計算機中,一串數碼作為一個整體來處理或運算的,稱為一個計算機字,簡稱字。字通常分為若干個位元組(每個位元組一般是8位)。在儲存器中,通常每個單元儲存一個字,因此每個字都是可以定址的。字的長度用位數來表示。

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

字長

計算機的每個字所包含的位數稱為字長。根據計算機的不同,字長有固定的和可變的兩種。固定字長,即字長度不論什麼情況都是固定不變的;可變字長,則在一定範圍內,其長度是可變的。

計算的字長是指它一次可處理的二進位制數字的數目。計算機處理資料的速率,自然和它一次能加工的位數以及進行運算的快慢有關。如果一臺計算機的字長是另一臺計算機的兩倍,即使兩臺計算機的速度相同,在相同的時間內,前者能做的工作是後者的兩倍。

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

位元組

位元組是指一小組相鄰的二進位制數碼。通常是8位作為一個位元組。它是構成資訊的一個小單位,並作為一個整體來參加操作,比字小,是構成字的單位。

在微型計算機中,通常用多少位元組來表示儲存器的儲存容量。

例如,在C++的資料型別表示中,通常char為1個位元組,int為4個位元組,double為8個位元組。

理解編碼的關鍵,是要把字元的概念和位元組的概念理解準確。這兩個概念容易混淆,我們在此做一下區分:

概念描述 舉例

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

位元組計算機中儲存資料的單元,一個8位的二進位制數,是一個很具體的儲存空間。0x01, 0x45, 0xFA……

字串

在記憶體中,如果“字元”是以ANSI編碼形式存在的,一個字元可能使用一個位元組或多個位元組來表示,那麼我們稱這種字串為ANSI字串或者多位元組字串。如,“中文123” (佔8位元組,包括一個隱藏的\0)。

字符集

對於ANSI編碼方式,存在不同的字符集(Charset)。同樣的位元組序列,在不同的字符集下表示的字元不一樣。要正確解析一個ANSI字串,還要選擇正確的字符集,否則就可能導致所謂的亂碼現象。不同語言版本的作業系統,都有一個預設的字符集。

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

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

每個字符集都有一個唯一的編號,稱為內碼表(Code Page)。簡體中文(GB2312)的內碼表為936,而系統預設字符集的內碼表為0,它表示根據系統的語言設定來選擇一個合適的字符集。

Unicode

字串在記憶體中,如果“字元”是以在Unicode中的序號存在的,那麼我們稱這種字串為Unicode字串或者寬位元組字串。在Unicode中,每個字元都佔兩個位元組。如,“中文123”(佔10位元組)。

Unicode和ANSI的區別就相當於輸入法內的“全形”和“半形”的區別。

由於不同ANSI編碼所規定的標準是不相同的(字符集不同),因此,對於一個給定的多位元組字串,我們必須知道它採用的是哪一種字符集則,才能夠知道它包含了哪些“字元”。

而對於Unicode字串來說,不管在什麼環境下,它所代表的“字元”內容總是不變的。Unicode 有著統一的標準,它定義了世界上絕大多數的字元的編碼,使得拉丁文、數字、簡體中文、繁體中文、日文等都能以同一種編碼方式儲存。

一個數字佔幾個位元組?開發愛好者2019-06-30 01:02:20

展開全部

一個數字是一個位元組。

位元組的標準定義:一個位元組均為8位。由於上述所講每個位或者是0或者是1,所以一個8位的位元組包含256種可能的0,1組合。

整數要根據型別,一般是極其的字長。比如16位機整數就是16位Bit,兩個位元組。32位機就是4位元組。還有int64型別的整數。

至於實數在C中,有32位(float)和64位(double)之分。其他語言中有型別80位的,叫擴充套件精度實數。主要是在cpu內部的擴充套件精度實數暫存器,是80位的。保證在double實數運算是不損失精度。

擴充套件資料:

字元與位元組