随机一个整数,将其比特位001转为011。
按位比较输入整数的比特位,遇到001,就转为011,然后移3个位;否则移1个位。
本文主要是以C、C++、QT为基础进行编程,运行前简单修改即可。测试入口函数为 void Test_Convert_Bits()。
#include <qglobal.h> #include "QtMath" #include "QTime" //将整数中的001转为011 void Test_Convert_Bits() { quint8 i=0; QString string; quint32 input; QTime time = QTime::currentTime(); qsrand(time.msec()); input = (quint32)qrand(); string = QString::number(input, 10); qDebug()<<"input:"<<input<<string; while(i<=(32-3)) { if(((input>>i)&0x7) == 1) { input |= (3<<i); i += 3; } else { i += 1; } } string = QString::number(input, 10); qDebug()<<"output:"<<input<<string; }input: 2615 “2615” output: 6775 “6775”