c++ 位运算,按位获取数值

c++ 进制表示

  • 二进制: 0b
  • 8进制: 0
  • 16进制: 0x
    例:下列都代表字母B
    char p1 =0b01000010; // 二进制
    char p2 =0102; // 八进制
    char p3 =0x42; // 十六进制
    char p4 =66; // 十进制
    char p5 =‘B’;

取某一个位数值、取范围位数值

  • 注意 char存储范围 -128~127,即:0b10000000 ~ 0b01111111 最高位位符号位,1表示负数
  • 使用&运算符,需要取哪个位值将哪个位置为1,其余置为0,并将位置移动到最低位
    例:获取第8位(符号位),7,6…
    char pp1 =0b10000000;
    char pp2 =0b01000000;
    char pp3 =0b00100000;
    char c1= (p1 & pp1)>>7;
    char c2= (p3 & pp2)>>6;
    char c3= (p3 & pp3)>>5;
    例:获取低4位,获取高4位
    char pp4 =0b00001111;
    char c4= (p3 & pp4);
    char pp5 =0b11110000;
    char c5= (p3 & pp5);

合并数据使用 |

  • char c6 = c5 | c4;

你可能感兴趣的:(c++,数学建模,算法)