我正在使用ROBOTC对我的机器人进行编程,而我正在使用其他人构建的代码。在一个函数中,我看到了这一行:
int leftDir = (left>0)*2-1;
leftDir
初始化为整数,那么>
会做什么?我的印象是二元转换,但我不确定。有人可以解释一下吗?
感谢。
答案 0 :(得分:6)
>
是greater than
运算符。在C中,比较结果为1
的{{1}}或true
的{{1}}。换句话说,上面的代码在逻辑上等同于(但更紧凑):
0
答案 1 :(得分:0)
之前的答案是正确的,但我相信他认为这是一个有点转变的运营商。这是有道理的,因为他继续将该值乘以一个数字,这意味着他并没有把它当作一个布尔值。不过,关于roobtc位转换符号,他是不正确的。如果要在robotc中对位数进行位移,请使用以下语法:
int foo = 0b00001111 >> 2; //bit shifts the bianary number 00001111 over by two bits, so foo will be set to the result 00000011