取uint32_t的每一位

 
- (void)viewDidLoad {
    [super viewDidLoad];
 
    union{
        uint32_t num;
        struct uint32data da;
    }val;
    val.num = 30; // 00 01 11 10
   
    NSLog(@"%d, %d , %d , %d", val.da.a, val.da.b, val.da.c, val.da.d);  // 第一种
   
   
    uint32_t data = 30;
    struct uint32data da = *(struct uint32data *)&data;                  // 第二种
   
    NSLog(@"%d, %d , %d , %d", da.a, da.b, da.c, da.d);
   
   
    uint32_t dat = 30;
    NSLog(@"%u, %u , %u , %u", dat&3, dat>>2&3, dat>>4&3, dat>>6&3);     // 第三种
   
}

struct uint32data {
    uint32_t a:2;
    uint32_t b:2;
    uint32_t c:2;
    uint32_t d:2;
};
posted on 2016-06-14 13:29  whqfor  阅读(929)  评论(0编辑  收藏  举报