如何获取二进制指定位上的值??

例如下面这个例子:

char name[100] = "grayVTouch";

// 低位多出2位(这种做法是错误的,因为低位多出两位,高位却丢失了两位,导致数据不完整)
// 如何在已有数据上,不丢失原有数据的情况下插入位??
*name <<= 2;

// 设置第一位、第二位值为 1
// 第一位表示性别,0 女,1 男
// 第二位表示长幼,0 幼,1 长
// 然后 name 表示的含义就是,姓名叫做 grayVTouch,性别男,年长。

// 掩码
int mask1 = 0x1;
int mask2 = 0x2;

// 设置第一位
*name |= mask1;
*name |= mask2;

// 现在要获取第一位的值,怎么获取??
// 第二位的值,怎么获取??
// 如何除去插入的2位,获取原始的值??

0. 如何在已有数据上,不丢失原有数据的情况下插入位??
1. 现在要获取第一位的值,怎么获取??
2. 第二位的值,怎么获取??
3. 如何除去插入的2位,获取原始的值??

阅读 3.6k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进