集合的二進位制整數表示

2021-08-26 23:35:43 字數 605 閱讀 5610

在程式中表示集合的方法有很多種,當集合中的元素個數較小時候,可以用二進位制來表示,每乙個二進位制轉換成十進位制的整數可以唯一的表示乙個集合。這個技巧也在演算法競賽中經常用到。

比如有乙個集合

那麼我們可以進行如下操作:

空集.............................0

只含有第i個元素的集合............1<>i&1)

向集合中加入第i個元素s∪..........s|1《比如只含有第i個元素的集合為什麼可以表示成1《舉個例子 比如只含有第2個元素的集合 那麼 1<<2=2^2 二進位制表示就是100   第0個元素沒有 因為在第0位置為0 第1個元素沒有因為在第1位置為0 第2個元素為1 表示有第二個元素 所以就這樣表示(它是倒著來的)。

比如含有全部n個元素的集合....(1《舉個例子 含有全部3個元素的集合   那麼(1<<3)-1 = 7=111(二進位制)    是不是對應二進位制位置都為1

比如判斷第i個元素是否屬於集合s...........if(s>>i&1)

舉個例子 比如乙個集合s  判斷它的第2個元素是否屬於s 將它的二進位制111 右移2位得到001 與1位與 得到1 說明第二個元素屬於集合s。

資料是用二進位制數表示的

問題 32位是幾個位元組?4位元組。1位元組 8位。二進位制數01011100轉換成十進位制是多少?二進位制數00001111左移兩位後,會變成原數的幾倍?4倍。二進位制數左移1位會變為原來的2倍。補碼形式表示的8位二進位制數11111111,用十進位制表示的話是多少?所有位都是1的二進位制數,用十...

判斷二進位製半整數(二進位制)

10年後,tokitsukaze大佬已經變成了年收入超百萬的的精英程式設計師,家裡沒錢也沒礦的teitoku,找tokitsukaze大佬借1000塊錢,然後tokitsukaze大佬說,借你1024吧,湊個整數。沒錯在2進製下1024是 二進位制整數 乙個正整數滿足其值為2的k次方 k為正整數 我...

二進位制浮點數表示機制

最小負數 2 2127 2 2 2 212 7 最大負數 1 2 126 1 2 1 2 1 26,0最小正數 1 2 126 1 2 1 2 12 6最大正數2 2 1272 2 2 2127 負數 1.7976931348623157e 308,4.94065645841246544e 324 ...