日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

信息编码:位操作布尔值编码

發布時間:2025/4/16 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 信息编码:位操作布尔值编码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

位操作:布爾值編碼

?

位圖(Bitmaps)是對布爾信息進行編碼的一種非常緊湊的方式,通常用在協議中。位圖的主要思想是整型數據中的每一位都能夠對一個布爾值編碼--通常是0表示false1表示true。要操縱位圖,你需要了解如何使用Java中的"位操作"方法來設置和清除單獨的一位。掩碼(mask)是一個的整數值,其中有一位或多位被設為1,其他各位被清空(即,設為0)。在這里我們處理的是int大小的位圖和掩碼(32位),但這些方法對其他類型的整數也同樣適用。

?我們將int中的各位從031進行編號,其中0代表最低位。一般來說,如果一個int值在第i位值為1,其他位都為0的話,該int型整數的值就是2i。因此編號為5的位表示32,編號為12的位表示4096,等等。這里有一些掩碼聲明的例子:

final int BIT5 = (1<<5);

final int BIT7 = 0x80;

final int BITS2AND3 = 12; // 8+4

int bitmap = 1234567;

要設置int變量中的特定一位,需要將該int值與特定位對應的掩碼進行按位或(bitwise-OR操作(|):

bitmap |= BIT5;

// bit 5 is now one

?要清空特定一位,則將該整數與特定所對應的掩碼的按位補碼(特定位為0,其他位為1進行按位與(bitwise-AND)操作。Java中的按位與操作符是&,而按位補碼操作符~

bitmap &= ~BIT7;

// bit 7 is now zero

?也可以通過將相應的所有掩碼進行按位或操作,一次設置和清空多位:

// clear bits 2, 3 and 5

bitmap &= ~(BITS2AND3|BIT5);

?要測試一個整數的特定位是否已經被設置,可以將該整數與特定位對應的掩碼進行按位與,并將操作結果與0比較:

boolean bit6Set = (bitmap & (1<<6)) != 0;

相關下載:

Java_TCPIP_Socket編程(doc)

http://download.csdn.net/detail/undoner/4940239

?

文獻來源:

UNDONER(小杰博客) :http://blog.csdn.net/undoner

LSOFT.CN(瑯軟中國) :http://www.lsoft.cn

?

轉載于:https://www.cnblogs.com/wuyida/archive/2012/12/19/6301080.html

總結

以上是生活随笔為你收集整理的信息编码:位操作布尔值编码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。