美文网首页
iOS-硬件开发之位操作

iOS-硬件开发之位操作

作者: 神SKY | 来源:发表于2017-04-07 09:23 被阅读50次

    在开发中,有时候会遇到位操作(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;
    }
    

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

    相关文章

      网友评论

          本文标题:iOS-硬件开发之位操作

          本文链接:https://www.haomeiwen.com/subject/praqattx.html