最近学习同事的代码,看到一段 是这样写的,之所以记下来的原因是当时自己写时费了好大劲儿才给解决.同事的代码简洁且高效.值得学习,特此记录
如何根据一个字节的1的位置来判断,其中偶数位置1代表加这个值,奇数位置1代表减这个值?所有置1位所代表的数值相加?
QString g_tagword="10001000"
QString str_p_val0 = list1sss1[0];
QString str_p_val1 = list1sss1[1];
QString str_p_val2 = list1sss1[2];
QString str_p_val3 = list1sss1[3];
QByteArray byteArray = g_tagword.toUtf8();
double final_val = 0;
for (int i = 0; i < byteArray.size(); i++)
{
if (byteArray[i] == '1')
{
if (i % 2 == 0)
{
final_val += list1sss1[i / 2].toDouble();
}
else
{
final_val -= list1sss1[i / 2].toDouble();
}
}
}