大話二進(jìn)制,八進(jìn)制,十進(jìn)制,十六進(jìn)制之間的轉(zhuǎn)換

二進(jìn)制一個熟悉又很陌生的東西,貌似現(xiàn)在的應(yīng)用程序員用的真的很少,現(xiàn)在都用高級語言來開發(fā)程序,誰還用到二進(jìn)制,八進(jìn)制,十六進(jìn)制,給我的感覺那就是這些都是那些c,c++寫一些底層交互的程序員干的事,向c,c++大神致敬,今天班門弄斧了,既然感到陌生,那我們就來研究下這個東西,純屬個人興趣愛好而已。
http://www.360doc.com/content/17/0227/22/8067272_632545159.shtml

2.什么是二進(jìn)制

[圖片上傳失敗...(image-1ab4e5-1520174111171)]

 二進(jìn)制是計算技術(shù)中廣泛采用的一種[數(shù)制](http://baike.baidu.com/view/7926.htm)。[二進(jìn)制數(shù)](http://baike.baidu.com/view/1349.htm)據(jù)是用0和1兩個[數(shù)碼](http://baike.baidu.com/view/29459.htm)來表示的數(shù)。它的基數(shù)為2,進(jìn)位規(guī)則是“逢二進(jìn)一”,借位規(guī)則是“借一當(dāng)二”,由18世紀(jì)德國數(shù)理哲學(xué)大師[萊布尼茲](http://baike.baidu.com/view/20062.htm)發(fā)現(xiàn)。當(dāng)前的[計算機(jī)系統(tǒng)](http://baike.baidu.com/view/1130583.htm)使用的基本上是[二進(jìn)制系統(tǒng)](http://baike.baidu.com/view/3421792.htm),數(shù)據(jù)在[計算機(jī)](http://baike.baidu.com/view/3314.htm)中主要是以補(bǔ)碼的形式存儲的。計算機(jī)中的二進(jìn)制則是一個非常微小的開關(guān),用“開”來表示1,“關(guān)”來表示0。

信息的存儲單位

位(Bit) :度量數(shù)據(jù)的最小單位

字節(jié)(Byte):最常用的基本單位,一個字節(jié)有8位

b7 b6 b5 b4 b3 b2 b1 b0

1 0 0 1 0 1 0 1 =27+24+22+20=149

K字節(jié) 1k=1024 byte

M(兆)字節(jié) 1M=1024K

G(吉)字節(jié) 1G=1024M

T(太)字節(jié) 1T=1024G

曾經(jīng)聽人說,一個c,c++大神,就靠輸入,0和1就可以裝好操作系統(tǒng),不知道是不是真的,嘿嘿

3.十進(jìn)制轉(zhuǎn)換

image

1234[10進(jìn)制] 0 1 2 3 4 5 6 7 8 9 0 當(dāng)數(shù)位上的值超過9就要進(jìn)1

1000+200+30+4=1103+2102+3101+4100=1234

1011[2進(jìn)制] 0 1 當(dāng)數(shù)位上的值超過1就要進(jìn)1

123+022+121+120=8+0+2+1=11

1011[8進(jìn)制]0 1 2 3 4 5 6 7 當(dāng)數(shù)位上的值超過7就要進(jìn)1

183+181+1*80=512+8+1=521

1011[16進(jìn)制]0 1 2 3 4 5 6 7 8 9 A B C D E F 當(dāng)數(shù)位上的值超過15就要進(jìn)1

1163+1161+1*160=4096+16+1=4113

當(dāng)然其他進(jìn)制轉(zhuǎn)換成10進(jìn)制是最簡單的了,我想聰明的你肯定會了。

4.二進(jìn)制轉(zhuǎn)換

首先來看十進(jìn)制到二進(jìn)制:除2取余數(shù) 最后把余數(shù)倒過來 100101

比如:十進(jìn)制數(shù)37

image

所以轉(zhuǎn)換成的二進(jìn)制數(shù)字為:100101

再來八進(jìn)制到二進(jìn)制:一個八進(jìn)制的位拆分成一個三位的二進(jìn)制數(shù)

比如:[八進(jìn)制]616

  6拆分成 110

 1拆分成 001

 6拆分成 110

所以轉(zhuǎn)換成的二進(jìn)制數(shù)字為:110001110

再來十六進(jìn)制到二進(jìn)制:一個八進(jìn)制的位拆分成一個四位的二進(jìn)制數(shù)

比如:[十六進(jìn)制]616

  6拆分成 0110

 1拆分成 0001

 6拆分成 0110

所以轉(zhuǎn)換成的二進(jìn)制數(shù)字為:11000010110

5.八進(jìn)制轉(zhuǎn)換

十進(jìn)制到八進(jìn)制:除8取余數(shù) 最后把余數(shù)倒過來

同時我們也可以先將十進(jìn)制轉(zhuǎn)換成二進(jìn)制,然后將二進(jìn)制又轉(zhuǎn)換成八進(jìn)制

比如:2456 轉(zhuǎn)化成八進(jìn)制數(shù)字:4630

2456/8=307,余0;
307/8=38,余3;
38/8=4,余6;
4/8=0,余4。
將所有余數(shù)倒序相連,得到結(jié)果:4630。
因此十進(jìn)制的2456轉(zhuǎn)換為八進(jìn)制結(jié)果為4630。

二進(jìn)制到八進(jìn)制轉(zhuǎn)換 7=4+2+1 111 八進(jìn)制最大的數(shù)字是7轉(zhuǎn)換成二進(jìn)制剛好是111,占3個位

每三個二進(jìn)制數(shù)為一組,轉(zhuǎn)成一個八進(jìn)制數(shù)位,如果二進(jìn)制高位不足3位時,用零填補(bǔ)。

比如:10011011

  010 011 011

   2     3     3

因此二進(jìn)制的10011011轉(zhuǎn)換為八進(jìn)制結(jié)果為233。

十六進(jìn)制到八進(jìn)制

我們可以先把十六進(jìn)制的數(shù)字轉(zhuǎn)換成二進(jìn)制,在從二進(jìn)制轉(zhuǎn)換成八進(jìn)制例如:

3BC24
分別對應(yīng)到二進(jìn)制就是:
3 0011
B 1011
C 1100
4 0100

連起來就是:
0011 1011 1100 0100

再按照每三個一組分組:
0 011 101 111 000 100

0__3__5__7__0__4
所以8進(jìn)制就是35704

6.十六進(jìn)制轉(zhuǎn)換

十進(jìn)制到十六進(jìn)制:除16倒著取余數(shù)

同時我們也可以先將十進(jìn)制轉(zhuǎn)換成二進(jìn)制,然后將二進(jìn)制又轉(zhuǎn)換成十六進(jìn)制

比如說:1610轉(zhuǎn)換成十六進(jìn)制

直接轉(zhuǎn)16進(jìn)制:
1610/16=100……10(A);
100 /16= 6……4;
6 /16= 0……6;

故:1610(10)=64A(16).

二進(jìn)制到十六進(jìn)制 15=8+4+2+1 1111 十六進(jìn)制最大數(shù)字是F,即15轉(zhuǎn)換成二進(jìn)制1111,剛好占4個位

每四個二進(jìn)制數(shù)為一組,轉(zhuǎn)成一個十六進(jìn)制數(shù)位,如果二進(jìn)制高位不足3位時,用零填補(bǔ)。

比如:1110011011

    0011 1001 1011

      3       9      B

因此二進(jìn)制的 1110011011轉(zhuǎn)換為十六進(jìn)制39B

八進(jìn)制到十六進(jìn)制

我們可以先把八進(jìn)制的數(shù)字轉(zhuǎn)換成二進(jìn)制,在從二進(jìn)制轉(zhuǎn)換成十六進(jìn)制

八進(jìn)制的:1234567

轉(zhuǎn)換為二進(jìn)制是每個數(shù)字轉(zhuǎn)換為三位二進(jìn)制:001 010 011 100 101 110 111

然后把這些數(shù)字從右邊開始進(jìn)行按四位分組:0 0101 0011 1001 0111 0111

然后從右邊每四位組依次對應(yīng)一個16進(jìn)制數(shù):053977

7.各種進(jìn)制的用途

說了這么多,這些進(jìn)制都有些什么用了,大家一起討論下吧!!!

10進(jìn)制,當(dāng)然是便于我們?nèi)祟悂硎褂茫覀儚男〉牧?xí)慣就是使用十進(jìn)制,這個毋庸置疑。

2進(jìn)制,是供計算機(jī)使用的,1,0代表開和關(guān),有和無,機(jī)器只認(rèn)識2進(jìn)制。

16進(jìn)制,內(nèi)存地址空間是用16進(jìn)制的數(shù)據(jù)表示, 如0x8049324。

編程中,我們常用的還是10進(jìn)制。

比如:int a = 100,b = 99;

不過,由于數(shù)據(jù)在計算機(jī)中的表示,最終以二進(jìn)制的形式存在,所以有時候使用二進(jìn)制,可以更直觀地解決 問題。但二進(jìn)制數(shù)太長了。比如int 類型占用4個字節(jié),32位。比如100,用int類型的二進(jìn)制數(shù)表達(dá)將是:

0000 0000 0000 0000 0110 0100

面對這么長的數(shù)進(jìn)行思考或操作,沒有人會喜歡。因此,用16進(jìn)制或8進(jìn)制可以解決這個問題。因為,進(jìn)制越大,數(shù)的表達(dá)長度也就越短。

1.用于計算機(jī)領(lǐng)域的一種重要的數(shù)制

2.對計算機(jī)理論的描述,計算機(jī)硬件電路的設(shè)計都是很有益的。比如邏輯電路設(shè)計中,既要考慮功能的完備,還要考慮用盡可能少的硬件,十六進(jìn)制就能起到一些理論分析的作用。比如四位二進(jìn)制電路,最多就是十六種狀態(tài),也就是一種十六進(jìn)制形式,只有這十六種狀態(tài)都被用上了或者盡可能多的被用上,硬件資源才發(fā)揮了盡可能大的作用。

3.十六進(jìn)制更簡短,因為換算的時候一位16進(jìn)制數(shù)可以頂4位2進(jìn)制數(shù)。

8進(jìn)制,一般有什么用,查了下資料,還真不知道?有知道的大神告訴我吧。

如果你用過linux你可能見過這樣表示一個文件的權(quán)限:0777、0666等等
可能有的這樣解釋:具有讀權(quán)限加1,具有寫權(quán)限加2,具有執(zhí)行權(quán)限加4,最后的和就是一個角色所具有的權(quán)限。而linux有三種角色:屬主、屬組、其他用戶,所以用0777、0666之類的表示。
如果用二進(jìn)制來看的話,linux用3個bit來表示權(quán)限,如果具有某個權(quán)限就把那位置1.比如只具有讀權(quán)限就是100,只具有寫權(quán)限就是010,具有讀寫權(quán)限就是110,具有讀寫執(zhí)行權(quán)限就是111。

package com.suypower.chengyu.test;

public class ByteTest {

/**

  • byte 8 bits -128 - + 127
  • 1 bit = 1 二進(jìn)制數(shù)據(jù)
  • 1 byte = 8 bit
  • 1 字母 = 1 byte = 8 bit(位)
  • 1 漢字 = 2 byte = 16 bit
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    byte b1 = 127;
    byte b2 = -128;
    byte b3 = 'a';
    byte b4 = 'A'; // 一個字母 = 1 byte = 8 bit
    // byte b5 ='aa'; 這就錯了
    // byte b6 ='中'; 這就錯了 一個漢字 2個字節(jié) 16bit
    short s1 = '啊'; // 一個漢字 2個字節(jié) 16bit short 是 16 bit位的
    // short s2 = '漢字'; // 2個漢字 4個字節(jié) 32 bit int 是32 bit的
    // int i1 = '漢字'; 但是 int 是數(shù)字類型的 , char 是 16 bit的 = 2 byte = 一個漢字
    char c1 = '汗';
    // byte 轉(zhuǎn)換 string
    String string = "中文";
    byte by[] = string.getBytes();
    String str = new String(by);
    System.out.println("str="+str);
    }

}

==================================================================================

[Java-原創(chuàng)] bit、byte、位、字節(jié)、漢字、字符
bit、byte、位、字節(jié)、漢字的關(guān)系

    1 bit     = 1  二進(jìn)制數(shù)據(jù)
    1 byte  = 8  bit
    1 字母 = 1  byte = 8 bit
    1 漢字 = 2  byte = 16 bit
  1. bit:位
    一個二進(jìn)制數(shù)據(jù)0或1,是1bit;

  2. byte:字節(jié)
    存儲空間的基本計量單位,如:MySQL中定義 VARCHAR(45) 即是指 45個字節(jié);
    1 byte = 8 bit

  3. 一個英文字符占一個字節(jié);
    1 字母 = 1 byte = 8 bit

  4. 一個漢字占2個字節(jié);
    1 漢字 = 2 byte = 16 bit

  5. 標(biāo)點符號
    A>. 漢字輸入狀態(tài)下,默認(rèn)為全角輸入方式;
    B>. 英文輸入狀態(tài)下,默認(rèn)為半角輸入方式;

    C>. 全角輸入方式下,標(biāo)點符號占2字節(jié);
    D>. 半角輸入方式下,標(biāo)點符號占1字節(jié);

    故:漢字輸入狀態(tài)下的字符,占2個字節(jié) (但不排除,自己更改了默認(rèn)設(shè)置);
    英文輸入狀態(tài)下的字符,占1個字節(jié) (但不排除,自己更改了默認(rèn)設(shè)置);

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,030評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,310評論 3 415
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,951評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,796評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 71,566評論 6 407
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,055評論 1 322
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,142評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,303評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,799評論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,683評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,899評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,409評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,135評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,520評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,757評論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,528評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 47,844評論 2 372

推薦閱讀更多精彩內(nèi)容