unsigned char是一种数据类型,用于存储无符号字符,可以存储的值范围是从 0 到 255(在8位的环境中)。
- unsigned char占用 1 个字节的内存。
- 可以存储的数值范围是 0 到 255。不能表示负数(无符号)
- 在表示二进制数时,unsigned char没有符号位,所有位都用于表示数值,
char是有符号的,可以存储的值范围是从 -128 到 127。用来存储ASCII编码中的字符(7位)。一个字节(8 位)。
- char占用 1 个字节的内存。
- 可以存储的数值范围是-128 到 255。
unsigned char 获取IO口状态,记录十六进制和二进制日志,并存储到list中。
unsigned char lGpiValue[2] = {255,255};
QVariantList diMcGpi;
diMcGpi.clear();
//lGpiValue[0]
QString hexStr1 = QString::asprintf("%02X", lGpiValue[0]);
LOG(INFO)<<"--1.1--> lGpiValue[0] = "<<hexStr1.toStdString();
QString binaryStr = QString("%1").arg(lGpiValue[0], 8, 2, QLatin1Char('0'));
LOG(INFO)<<"--1.2--> "<<binaryStr.toStdString();
for(int i = 0;i< 8;i++){
if(lGpiValue[0] & (1<<i)){
diMcGpi[i] = true;
LOG(INFO)<<"--1.3-->diMcGpi["<<i<<"] = "<<diMcGpi[i].toBool();
}else{
diMcGpi[i] = false;
LOG(INFO)<<"--1.4-->diMcGpi["<<i<<"] = "<<diMcGpi[i].toBool();
}
}
//lGpiValue[1]
QString hexStr2 = QString::asprintf("%02X", lGpiValue[1]);
LOG(INFO)<<"--2.1--> lGpiValue[1] = "<<hexStr2.toStdString();
QString binaryStr2 = QString("%1").arg(lGpiValue[1], 8, 2, QLatin1Char('0'));
LOG(INFO)<<"--2.2--> "<<binaryStr2.toStdString();
for(int i = 0;i< 8;i++){
if(lGpiValue[1] & (1<<i)){
diMcGpi[i+8] = false;
LOG(INFO)<<"--2.3-->diMcGpi["<<i<<"] = "<<diMcGpi[i].toBool();
}else{
diMcGpi[i+8] = true;
LOG(INFO)<<"--2.4-->diMcGpi["<<i<<"] = "<<diMcGpi[i].toBool();
}
}

被折叠的 条评论
为什么被折叠?



