日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

JAVA中的進(jìn)制也算是面試中經(jīng)常會(huì)遇到的一個(gè)知識(shí)點(diǎn),不管是計(jì)算問(wèn)題,還是涉及到的基礎(chǔ)知識(shí)。因此這篇文章對(duì)其進(jìn)行一個(gè)整理。主要參考了慕課網(wǎng)上的視頻,特在此說(shuō)明。不管是你初學(xué)者還是工作中,又或者是找工作中。本文都能對(duì)你有所幫助。

本篇文章主要解決以下幾個(gè)問(wèn)題:

1、二進(jìn)制的歷史

2、java中的進(jìn)制轉(zhuǎn)換

3、java中的移位運(yùn)算

4、數(shù)據(jù)大小端問(wèn)題

5、進(jìn)制在java中的使用

下面我們就針對(duì)這些問(wèn)題,來(lái)分析一下java中的進(jìn)制。

一、二進(jìn)制的歷史

這一小節(jié)優(yōu)點(diǎn)閑扯淡的感覺(jué),要說(shuō)二進(jìn)制的歷史其實(shí)可以追述到一個(gè)大數(shù)學(xué)家萊布尼茨。當(dāng)時(shí)有一個(gè)法國(guó)傳教士白晉來(lái)到了咱們中國(guó),走的時(shí)候帶走了中國(guó)的一本古書(shū)《易經(jīng)》,白晉回到德國(guó)之后,萊布尼茨就看了《易經(jīng)》里面的伏羲八卦圖。突然靈機(jī)一動(dòng)(動(dòng)沒(méi)動(dòng)是我瞎猜的),就發(fā)明了二進(jìn)制。不管不管怎么樣二進(jìn)制的由來(lái)或多或少都收到了中國(guó)伏羲八卦圖的影響。

聊聊java中的進(jìn)制問(wèn)題

 

這就是伏羲八卦圖,怎么想到的我也不知道,不過(guò)你仔細(xì)觀察看一下,最上面的乾卦三橫實(shí)線,順時(shí)針轉(zhuǎn)動(dòng),實(shí)線變虛線。你可以想象成從000到111的變化。

二、java中的進(jìn)制轉(zhuǎn)換

其實(shí)常見(jiàn)的進(jìn)制轉(zhuǎn)換主要有以下幾種:

(1)十進(jìn)制轉(zhuǎn)二進(jìn)制

(2)十進(jìn)制轉(zhuǎn)八進(jìn)制

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

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

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

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

十進(jìn)制的范圍就是0-9,二進(jìn)制的范圍是0-1,八進(jìn)制的范圍是0-7,十六進(jìn)制的范圍是0-f。java提供了工具類(lèi)來(lái)實(shí)現(xiàn)進(jìn)制的轉(zhuǎn)換。因此在筆試的時(shí)候你可以直接使用。

聊聊java中的進(jìn)制問(wèn)題

 

 

然后我們運(yùn)行一下就可以直接看到結(jié)果了。比較簡(jiǎn)單。

三、java中的位操作

java中為了使得運(yùn)算方便而且快速,可以直接進(jìn)行位操作進(jìn)行運(yùn)算。常見(jiàn)的有以下六種:

聊聊java中的進(jìn)制問(wèn)題

 


聊聊java中的進(jìn)制問(wèn)題

 


聊聊java中的進(jìn)制問(wèn)題

 


聊聊java中的進(jìn)制問(wèn)題

 


聊聊java中的進(jìn)制問(wèn)題

 


聊聊java中的進(jìn)制問(wèn)題

 


聊聊java中的進(jìn)制問(wèn)題

 

上面這幾張圖,主要是概念用法。下面我們看位運(yùn)算的幾個(gè)應(yīng)用: (1) 判斷int型變量a是奇數(shù)還是偶數(shù) a&1 = 0 偶數(shù) a&1 = 1 奇數(shù)

(2) 取int型變量a的第k位 (k=0,1,2……sizeof(int)),即a>>k&1 (先右移再與1)

3) 將int型變量a的第k位清0,即a=a&~(1<<k) (10000 取反后為00001 )

(4) 將int型變量a的第k位置1,即a=a|(1<<k)

(5) int型變量循環(huán)左移k次,即a=a<<k|a>>16-k (設(shè)sizeof(int)=16)

(6) int型變量a循環(huán)右移k次,即a=a>>k|a<<16-k (設(shè)sizeof(int)=16)

(7)對(duì)于一個(gè)數(shù) x >= 0,判斷是不是2的冪。

聊聊java中的進(jìn)制問(wèn)題

 

 

(8)不用temp交換兩個(gè)整數(shù)

聊聊java中的進(jìn)制問(wèn)題

 

(9)計(jì)算絕對(duì)值

聊聊java中的進(jìn)制問(wèn)題

 

(10)取模運(yùn)算轉(zhuǎn)化成位運(yùn)算 (在不產(chǎn)生溢出的情況下)

a % (2^n) 等價(jià)于 a & (2^n - 1)

(11)乘法運(yùn)算轉(zhuǎn)化成位運(yùn)算 (在不產(chǎn)生溢出的情況下)

a * (2^n) 等價(jià)于 a<< n

四、大小端問(wèn)題

1、小端法(Little-Endian)

低位字節(jié)排放在內(nèi)存的低地址端即該值的起始地址,高位字節(jié)排放在內(nèi)存的高地址端

2、高端法(Big-Endian)

高位字節(jié)排放在內(nèi)存的低地址端即該值的起始地址,低位字節(jié)排放在內(nèi)存的高地址端

為什么會(huì)有大小端呢?

在計(jì)算機(jī)中,每個(gè)地址單元都對(duì)應(yīng)著一個(gè)字節(jié)(8bit)數(shù)據(jù)。java中int類(lèi)型占據(jù)4個(gè)字節(jié),long占據(jù)8個(gè)字節(jié),計(jì)算機(jī)是由32位和64位之分的,處理器因此也就是有32位和64位之分,現(xiàn)在有一個(gè)32位的處理器,突然來(lái)了一個(gè)8字節(jié)64位的數(shù)據(jù),這時(shí)候處理器就不能一下子處理了,于是就要把8個(gè)字節(jié)的數(shù)據(jù)分開(kāi)存放,這一存放就要分出個(gè)高地了,誰(shuí)在前面誰(shuí)在后面的問(wèn)題。

比如說(shuō)下面的這個(gè)例子(前幾天做的一道面試原題):

小端情況

聊聊java中的進(jìn)制問(wèn)題

 

大端情況

聊聊java中的進(jìn)制問(wèn)題

 

這個(gè)在大端模式下是正常的。牢記牢記。

五、進(jìn)制的使用場(chǎng)景

上面在介紹的時(shí)候其實(shí)說(shuō)了一部分,但是這里再簡(jiǎn)單的舉個(gè)例子,最常見(jiàn)的例子就是序列化。我們知道客戶端我們可以使用java語(yǔ)言編寫(xiě),但是服務(wù)器就不一定了,可能是java,也可能是C++,這時(shí)候傳輸數(shù)據(jù)怎么辦呢?這倆語(yǔ)言之間又相互不認(rèn)識(shí)。這時(shí)候客戶端java就可以把我們的數(shù)據(jù)切分序列化成二進(jìn)制數(shù),二進(jìn)制數(shù)計(jì)算機(jī)到哪都能認(rèn)識(shí),這時(shí)候把二進(jìn)制數(shù)發(fā)送到服務(wù)端,服務(wù)端按照一定的規(guī)則反序列化就OK了。

對(duì)于字符串來(lái)說(shuō)那就是太簡(jiǎn)單了,我們直接getBytes就可以轉(zhuǎn)化成byte。但是對(duì)于int該怎么辦呢?我們給出一個(gè)例子,其他的可以自己測(cè)試一下。

聊聊java中的進(jìn)制問(wèn)題

 

OK,進(jìn)制中常見(jiàn)的問(wèn)題先列出這么多,歡迎批評(píng)指正。

分享到:
標(biāo)簽:java
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定