Arduino:将布尔数组转换为十进制
Arduino: convert boolean array to decimal
我的 Arduino 有问题。我正在尝试使用这段代码将布尔数组转换为 int:
int boolean_to_decimal(bool bol[]) {
int somme=0;
for (int i = 0; i < 6; i++){
somme += bol[i] * pow(2, 5-i);
}
return somme;
}
没什么特别令人印象深刻的,但这是我的结果:
010101 == 20(而不是 21)
100101 == 36(而不是 37)
101001 == 40(而不是 41)
011001 == 23(而不是 25)
等等
大卫,谢谢你抽出时间
对整数使用浮点函数 pow()
似乎很糟糕,因为它可能包含错误。尝试改用位移位。
int boolean_to_decimal(bool bol[]){
int somme=0;
for (int i = 0; i<6; i++){
somme += bol[i]*(1 << (5-i));
}
return somme;
}
我的 Arduino 有问题。我正在尝试使用这段代码将布尔数组转换为 int:
int boolean_to_decimal(bool bol[]) {
int somme=0;
for (int i = 0; i < 6; i++){
somme += bol[i] * pow(2, 5-i);
}
return somme;
}
没什么特别令人印象深刻的,但这是我的结果:
010101 == 20(而不是 21)
100101 == 36(而不是 37)
101001 == 40(而不是 41)
011001 == 23(而不是 25)
等等
大卫,谢谢你抽出时间
对整数使用浮点函数 pow()
似乎很糟糕,因为它可能包含错误。尝试改用位移位。
int boolean_to_decimal(bool bol[]){
int somme=0;
for (int i = 0; i<6; i++){
somme += bol[i]*(1 << (5-i));
}
return somme;
}