2013-10-25 24 views
0

我正在使用ROBOTC來編程我的機器人,並且我使用了其他人編寫的代碼。在一個功能,我看行:ROBOTC - 不確定about>符號

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

leftDir被初始化爲一個整數,所以什麼是>嗎?我的印象是二元轉變,但我不確定。有人可以解釋這個嗎? 謝謝。

+3

Naw。這是「大於」運營商。 (我很確定你在數學公式中使用過,不是。) – 2013-10-25 19:10:57

+0

但是,如何將'leftDir'初始化爲一個整數? – Jeeter

+0

沒有任何問題。你關心什麼? – 2013-10-25 19:12:06

回答

6

>greater than運營商。在C的比較結果爲1true0false。換句話說上面的代碼在邏輯上等同於(但更緊湊):

int leftDir; 

if (left > 0) { 
    leftDir = 1; 
} else { 
    leftDir = -1; 
} 
+0

好的。我沒有真正這樣想過。謝謝! – Jeeter

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