国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

香港云服务器
服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - Java輸出通過(guò)InetAddress獲得的IP地址數(shù)組詳細(xì)解析

Java輸出通過(guò)InetAddress獲得的IP地址數(shù)組詳細(xì)解析

2019-10-14 14:06java技術(shù)網(wǎng) Java教程

由于byte被認(rèn)為是unsigned byte,所以最高位的1將會(huì)被解釋為符號(hào)位,另外Java中存儲(chǔ)是按照補(bǔ)碼存儲(chǔ),所以1000 0111會(huì)被認(rèn)為是補(bǔ)碼形式,轉(zhuǎn)換成原碼便是1111 0001,轉(zhuǎn)換成十進(jìn)制數(shù)便是-121

使用 InetAddress 獲取 IP 地址會(huì)得到一個(gè) byte 數(shù)組
如果你直接輸出這個(gè)數(shù)組,你會(huì)發(fā)現(xiàn) IP 地址中的某些位變成了負(fù)數(shù)
比如 61.135.169.105 會(huì)輸出成 61.-121.-87.105
仔細(xì)看一看,會(huì)發(fā)現(xiàn) 135 + 121 = 256,169 + 87 = 256


-_-! 怎么個(gè)情況!

我首先想到的是 byte 類型向 int 類型轉(zhuǎn)換過(guò)程中出現(xiàn)了問(wèn)題,后來(lái)發(fā)現(xiàn),實(shí)際不然

因?yàn)?Java 中沒(méi)有 unsigned 類型,所以byte、short、int、long 都是有符號(hào)的,所以根本就不存在隱式類型轉(zhuǎn)換出錯(cuò)的問(wèn)題。

既然說(shuō)到了 Java 沒(méi)有 unsigned 類型,那么 byte 是 8 位,所以表示范圍為 -127 - 128,而 IP 一個(gè)段的表示范圍為 0 - 255,終于找到了不對(duì)勁的地方了

IP 的一個(gè)段是一個(gè) unsigned byte,這樣一個(gè) unsigned byte 存入一個(gè) signed byte 中當(dāng)然會(huì)導(dǎo)致一些問(wèn)題出現(xiàn)

分析一下:
35 的二進(jìn)制編碼為 1000 0111,最高位置為 1

由于 byte 被認(rèn)為是 unsigned byte,所以最高位的 1 將會(huì)被解釋為符號(hào)位,另外 Java 中存儲(chǔ)是按照補(bǔ)碼存儲(chǔ),所以 1000 0111 會(huì)被認(rèn)為是補(bǔ)碼形式,轉(zhuǎn)換成原碼便是 1111 0001,轉(zhuǎn)換成十進(jìn)制數(shù)便是 -121。

再看,65 的二進(jìn)制編碼為 0100 0001,由于小于 128,所以沒(méi)有將最高位置 1,0100 0001 的補(bǔ)碼還是 0100 0001,所以 65 不變。

分析這么多,這個(gè)問(wèn)題的解決方法其實(shí)很簡(jiǎn)單,將 byte 變量與 0xFF 按位與即可,過(guò)程中 byte 會(huì)隱式類型轉(zhuǎn)換為 int,當(dāng)與 0xFF 按位與的時(shí)候,會(huì)將除了低 8 位的其他位全部置 0,這樣一來(lái)便將符號(hào)擴(kuò)展的那些高位清除掉了。

最后附上一個(gè)自己寫的通用函數(shù),用來(lái)將整型變量的二進(jìn)制編碼輸出

復(fù)制代碼代碼如下:

/**
 * 將整型變量的二進(jìn)制編碼形式輸出
 * @param n 整型變量
 * @param size 整型的二進(jìn)制長(zhǎng)度,可使用類似 Short.SIZE 獲得
 * @return 二進(jìn)制編碼字符串
 */
public static String printBinary(long n, int size) {
 StringBuilder sb = new StringBuilder();
 for (int i = size - 1; i >= 0; i--) {
  sb.append(n >>> i & 0x01);
  if (i % 4 == 0) {
   sb.append(" ");
  }
 }
 return sb.toString();
}
 

延伸 · 閱讀

精彩推薦
527
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 在线欧美一区 | 97av在线 | 国产午夜在线 | 日韩av电影在线观看 | 国产精品99久久免费观看 | 狠狠躁夜夜躁人人爽天天天天97 | 综合久 | 成人黄色在线观看 | 高清一区二区三区 | 精彩视频一区二区三区 | 天天操天天干天天 | 精品伦精品一区二区三区视频 | 久久久www成人免费无遮挡大片 | 一级片视频在线观看 | 密臀av| 欧美福利一区二区 | 免费又黄又爽又色的视频 | 91精品国产综合久久久久久丝袜 | 午夜精品久久久久久久久 | 亚洲视频在线观看 | 午夜久久久久久久 | 99在线观看 | 亚洲国产精品电影在线观看 | 香蕉一区| 在线精品国产一区二区三区 | 亚洲精品久久久久国产 | 91在线精品一区二区三区 | 久草视频国产 | 91精品国产综合久久久蜜臀粉嫩 | 亚洲国产精品久久人人爱 | 国产一区二区三区免费视频 | 亚洲欧美激情精品一区二区 | 欧美国产精品一区二区三区 | 国产精品区一区二区三区 | 欧美freesex交免费视频 | 在线观看日韩 | 日韩视频在线观看 | 国产精品久久久久久亚洲调教 | 欧美日韩国产在线播放 | 狠狠干天天爱 | 亚洲欧美日韩精品久久亚洲区 |