位操作——整数用位存储
生活随笔
收集整理的這篇文章主要介紹了
位操作——整数用位存储
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在32位系統(tǒng)中,存儲(chǔ)一位整型(int)數(shù)需要4個(gè)字節(jié)(4B),如果開(kāi)辟一個(gè)空間,把其中的某個(gè)位1,就從原來(lái)的32b減少到1b,大大節(jié)省了空間。
原理
字符數(shù)組entry是存儲(chǔ)位的數(shù)組,我們把數(shù)字N存到entry中,則
把第N位置1:entry[nBits/8] = entry[nBits/8] | (1 << (nBits%8) )
檢驗(yàn)第N位是否為1:entry[nBits/8] & (1 << (nBits%8)
圖示
函數(shù)
void setBit(char entry[], int nBits) {entry[nBits/8] = entry[nBits/8] | (1 << (nBits%8) ); }int checkBit(char entry[], int nBits) {return (entry[nBits/8] & (1 << (nBits%8) )); }?
?
本文轉(zhuǎn)自jihite博客園博客,原文鏈接:http://www.cnblogs.com/kaituorensheng/p/3169570.html,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的位操作——整数用位存储的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 计算2个时间之间经过多少Ticks
- 下一篇: Gevent简明教程