單位換算 硬碟的 短斤缺兩 字符集解決亂碼問題

2021-06-18 06:22:37 字數 4176 閱讀 7003

位元組[zì jié]

本詞條需要補充更多的參考資料。

參考資料

以供查證。

歡迎您協助

編輯改善

該詞條。

百科名片

位元組(byte)是

計算機資訊技術用於計量儲存容量和傳輸容量的一種計量單位,乙個位元組等於8位

二進位制數。

目錄簡介

換算混淆概念

型位元組型

語言字元

展開

簡介 換算

混淆概念

型位元組型

語言字元

展開

位元組(byte 發音:/『bait/)。資料儲存是以「位元組」(byte)為單位,資料傳輸是以「位」(bit)為單位,乙個位就代表乙個0或1(即二進位制),每8個位(bit)組成乙個位元組(byte)。8bit=1byte 注意1b不等於1b,資料儲存是以10進製表示,資料傳輸是以2進製表示所以1kb不等於1kb,1kb=1024b,1kb=1024byte=1024*8bit

[1]在 ascii碼中,乙個英文本母(不分大小寫)佔乙個位元組的空間,乙個中文

漢字佔兩個位元組的空間。

符號:英文

標點佔乙個位元組,中文標點佔兩個位元組。舉例:英文句號「.」佔1個位元組的大小,中文句號「。」佔2個位元組的大小。 乙個

二進位制數字序列,在

計算機中作為乙個數字單元,一般為8位二進位制數,換算為

十進位制。最小值0,最大值255。如乙個ascii碼就是乙個位元組,此類單位的換算為:

其中1024=2^10 ( 2 的10次方),

1kb(kibibyte,

千位元組)=1024b, 1

mb(mebibyte,

兆位元組,簡稱「兆」)=1024kb, 1

gb(gigabyte,

吉位元組,又稱「千兆」)=1024mb, 1

tb(terabyte,萬億位元組,

太位元組)=1024gb, 1

pb(petabyte,千萬億位元組,

拍位元組)=1024tb, 1

eb(exabyte,百億億位元組,

艾位元組)=1024pb, 1

zb(zettabyte,十萬億億位元組,澤位元組)= 1024eb, 1

yb(yottabyte,一億億億位元組,堯位元組)= 1024zb, 1

bb(brontobyte,一千億億億位元組)= 1024yb

注意:mib和mb,kib和kb等的區別:

1kib(kibibyte)=1024byte

1kb(kilobyte)=1000byte

1mib(mebibyte)=1048576byte

1mb(megabyte)=1000000byte

這是因為

硬碟生產商是以gb(

十進位制,即10的3次方=1000,如1mb=1000kb)計算的,而電腦(

作業系統)是以gib(2進製,即2的10次方, 如1mib=1024kb)計算的,但是國內使用者一般理解為1mb=1024 kb, 所以為了便於中文化的理解,翻譯mib為mb也是可以的。

同樣根據

硬碟廠商與使用者對於1mb大小的不同理解,所以好多160g的硬碟實際容量按

計算機實際的1mb=1024kb算都不到160g,這也可以解釋為什麼新買的硬碟「缺斤短兩」並沒有它所標示的那麼大。

注:10tb大約等於乙個人腦的

儲存量。 在

計算機中,一串數碼作為乙個整體來處理或運算的,稱為乙個

計算機字,簡稱字。字通常分為若干個位元組(每個位元組一般是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中,每個

字元都佔兩個位元組。如,"中文123"(佔10位元組)。

unicode和ansi的區別就相當於

輸入法內的「

全形」和「

半形」的區別。

由於不同ansi編碼所規定的標準是不相同的(

字符集不同),因此,對於乙個給定的多位元組字串,我們必須知道它採用的是哪一種字符集則,才能夠知道它包含了哪些「字元」。而對於unicode

字串來說,不管在什麼環境下,它所代表的「字元」內容總是不變的。unicode 有著統一的標準,它定義了世界上絕大多數的

字元的編碼,使得拉丁文、數字、簡體中文、正體中文、日文等都能以同一種編碼方式儲存。

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

資料型別。

效果等同於 unsigned char型

typedef unsigned char byte

定義一種新型別byte,它其實就是unsigned char

在vc++中,byte型資料的定義包含在windows.h標頭檔案中,呼叫byte需要新增**#include

電容的單位換算

1 電 容 單 位 換 算 電容的單位換算 2009年12月20日 星期日 23 14 電容的單位換算 1f 10 6uf 10 9nf 10 12pf 電容的基本單位用法拉 f 表示 1f 10 6uf 10 12pf 併聯補償所需電容的計算公式是 c p 2 fu2 tg 1 tg 式中 p 電...

時間單位的換算

在.net中常看到datetime.now.ticks來獲得當前日期與時間的刻度數。msdn中的備註是此屬性的值表示自0001 年1 月1 日午夜12 00 00 以來已經過的時間的以100 毫微秒為間隔的間隔數。那麼乙個tick到底是多少秒?今天在網上搜了一下,整理如下 毫秒,時間單位,符號ms ...

海洋單位距離的換算

在陸地上可以使用參照確定兩點間的距離,使用厘公尺 公尺 公里等作為計量單位,而海上缺少參照物,人將赤道經度的1分對應的距離記為1海浬,使用海浬作為海上計量單位。公里與海浬可以通過一下公式換算 1海浬 1.852公里 根據要求編寫程式,實現將公里轉為海浬的換算。kilometer float inpu...