iOS-硬件开发之位操作

2017-04-07  本文已影响50人  神SKY

在开发中,有时候会遇到位操作(bit),有人会问什么是bit?
其实最简单的回答就是1B = 8bit,即一个字节等于8个bit(比特)。
那怎么把8个bit合成1B呢?
看下图



其中每一个方框就是一个bit,每个方框里也只能填0或者1。
那如何将一个Byte里面的bit变成我们想要的呢?
下面举一个例子,假如想要Byte里面的8个bit是11101101,可以这样写:

Byte temp = 1*0x80 | 1 * 0x40 | 1 * 0x20 | 0*0x10 | 1*0x8 | 1*0x4 | 0*0x2 | 1*0x1 ;

有了合成,就肯定有拆分,拆分直接调用小编写的下列方法即可

#pragma mark 拆分byte为bit
- (NSArray *)breakUpByte:(Byte)byte
{
    NSMutableArray *arr = [NSMutableArray array];
    
    while (byte > 0) {
        int i = byte % 2;
        byte = byte / 2;
        [arr addObject:[NSString stringWithFormat:@"%d",i]];
    }
//    判断数组是否含有8个bit
    while (arr.count < 8) {
        [arr addObject:[NSString stringWithFormat:@"%d",0]];
    }
//    数组倒序
    NSArray *temp = [[arr reverseObjectEnumerator] allObjects];
    return temp;
}

希望对各位看官们有所帮助

上一篇下一篇

猜你喜欢

热点阅读