標誌位的位運算應用

2021-08-31 05:47:05 字數 448 閱讀 2084

今天設計新版標誌位,老郭提出了乙個新的方案。

以往都是乙個字段設定乙個狀態,tinyint型別,0或者1,但是這樣的壞處是如果乙個資訊表有很多狀態,需要增加很多的字段,空間利用不好,所以他提出用二進位制位運算來解決標示位的問題。

設定標示位字段位tinyint型別,也就是最大128,換成二進位制就是有8位,每個位代表乙個標示位,就可以代表8個標示位。例如這個欄位是128,二進位制形式就是1000000,這裡第八位的1可以代表這個表的乙個標示位,比如是否**。

當然這個方案的優點在於節省空間,如有新增加的標示位只需在乙個欄位下操作即可,當然前提是這個表的標示位少於8個。

缺點也很明顯,因為這個欄位存的是整數,所以資料庫裡看一條資料的時候不直觀明顯。第二點,如果要改變某條資料的標示位值,必須要進行位運算。第三點,如果要批量修改資料狀態,貌似不怎麼好實現。

雖然這個方案缺點,優點明顯,但不失為乙個解決問題的方法。

位運算應用

位運算 針對整型 字元型,計算機會將它轉換為二進位制運算 1 按位與 x y 對應位都為1時才為1 用途 取 保留1個數的某位 對應掩碼的對應位為1 其餘各位置1 2 按位或 x y 對應位都為0才為0,否則為1 用途 將1個數的某些位置1,其餘不變 3 按位異或 x y 對應位相同為0,不同為1 ...

位運算應用

1.判斷乙個數的奇偶性。x 1 101 1 1 2.判斷x是否是2的正整數冪。x x 1 100 011 0 3.取出乙個數的某些二進位制位。3.1.x 1 d 1 10101 1 3 1 00100 取第d位 3.2.x 1 d 1 10101 1 3 1 00101 取最後d位,x對2 d取模 ...

位運算應用

位運算是指按二進位制進行的運算。在系統軟體中,常常需要處理二進位制位的問題。c語言提供了6個位操作 運算子。這些運算子只能用於整型運算元,即只能用於帶符號或無符號的char,short,int與long型別。c語言提供的位運算子列表 運算子 含義 描述 按位與 如果兩個相應的二進位制位都為1,則該位...