2009-11-15 102 views
0
Matrix<float> trainData2 = trainData.GetRows(intVar >> 1, intVar, 1); 

intVar是整數類型... 請幫我理解這段代碼。我不能理解下面的代碼

+0

對所有人都非常非常... – ranzan 2009-11-15 08:32:45

回答

0

那麼>> 1是右移;在這種情況下,它將(有效地)返回減半的值intVar(除了涉及-ve數字的一些情況)。我不知道你的trainData是什麼,但我猜測我們正在建立一張半桌或其他東西的矩陣?

1

如果你不明白的部分是intVar >> 1,這只是將值右移一位。換句話說,它將intVar除以2。

4

>> 1的意思是「向右移動一個」,這是一種低級別的表示「用2除去符號」的方式。

也許這就是你需要的線索?

+1

這取決於你的意思是無符號... **不**遵守簽名類型的MSB。如果它是一個無符號的分隔符,我會期待以下('j'和'k')返回相同的值(它們不會):int i = 1 << 31; int j =(int)(( (uint)i)/ 2); int k = i >> 1;'。 – 2009-11-15 08:49:46