我希望Output 1
等于Output 2
,因为简单的加减法,括号应该没有区别
这是输出:
Output 1: 3 Output 2: 4294967295 Output 1: 6 Output 2: 2
我认为这与 string.size(( 有关,但我无法向自己解释这是如何发生的。也许有人可以帮助我理解这一点。
int lastPos = 0;
std::string inputString = "0b1*10*0";
while (lastPos != -1){
lastPos = inputString.find('*',lastPos+1);
if(lastPos != -1){
// -2 for 0b/ removal
// 8 Bit max Size
std::cout << "Output 1: " << lastPos-2 + 8 - (inputString.size()-2) << std::endl;
std::cout << "Output 2: " << lastPos-2 + 8 - inputString.size()-2 << std::endl;
}
}
lastPos-2 + 8 - (inputString.size()-2)
!=lastPos-2 + 8 - inputString.size()-2
lastPos-2 + 8 - (inputString.size()-2)
==lastPos-2 + 8 - inputString.size()+2
因为-(-2) == +2