zoukankan      html  css  js  c++  java
  • c++位运算及相关操作

    在c++中,经常会对具体整型数据的位进行操作。例如:要获取整数12(0B1100)在第1位上数值(为0),第2位上数值(为1),第3位上数值(为1)。在此,我使用位操作符中的“&”进行读取。

    因为整数中的1,2,4,8(2^n  n=0,1,2,3,4.....)用二进制表示分别为0B0001,0B0010,0B0100,0B1000,保证了只有一位为1,其余均为0的特性,可以“过滤”出特殊位置出的数值。

    1 int i(12);    //0x1100
    2 int j01 = (12 & 4) / 4;    //(0x1100 & 0x0100) / 0x0100
    3 int j02 = (12 & 8) / 8;    //(0x1100 & 0x1000) / 0x1000
    4 ...
    5 //输出j01,j02
    6 j01为1,
    7 j02为1

    在c++中,可以对二进制、八进制、十六进制数直接进行操作,只需在赋值时标明进制,0B或0b,0,0x。

     1     quint16 i = 0b110010;
     2     qDebug()<< "i = " << i <<endl;
     3 
     4     quint16 i01 = 017224;
     5     qDebug()<< "i01 = " << i01 <<endl;
     6 
     7     quint32 i02 = 0x3F1;
     8     qDebug()<< "i02 = " << i02 <<endl;
     9 
    10 
    11 结果:
    12 
    13     i =  50 
    14 
    15     i01 =  7828 
    16 
    17     i02 =  1009 
  • 相关阅读:
    sql注入常用的判断方法
    refere是什么
    mysql语句
    linux命令
    软件测试
    tcp和udp
    java面试干货
    为什么重写了equals方法一般也要重写hashCode方法
    redis源码解析
    Numpy复习
  • 原文地址:https://www.cnblogs.com/weiweiqiao99/p/14288869.html
Copyright © 2011-2022 走看看