ROBOTC - 不确定>符号

时间:2013-10-25 19:06:15

标签: c

我正在使用ROBOTC对我的机器人进行编程,而我正在使用其他人构建的代码。在一个函数中,我看到了这一行:

int leftDir = (left>0)*2-1;

leftDir初始化为整数,那么>会做什么?我的印象是二元转换,但我不确定。有人可以解释一下吗? 感谢。

2 个答案:

答案 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