Matrix<float> trainData2 = trainData.GetRows(intVar >> 1, intVar, 1);
intVar是整數類型... 請幫我理解這段代碼。我不能理解下面的代碼
Matrix<float> trainData2 = trainData.GetRows(intVar >> 1, intVar, 1);
intVar是整數類型... 請幫我理解這段代碼。我不能理解下面的代碼
那麼>> 1
是右移;在這種情況下,它將(有效地)返回減半的值intVar
(除了涉及-ve數字的一些情況)。我不知道你的trainData
是什麼,但我猜測我們正在建立一張半桌或其他東西的矩陣?
如果你不明白的部分是intVar >> 1
,這只是將值右移一位。換句話說,它將intVar除以2。
>> 1
的意思是「向右移動一個」,這是一種低級別的表示「用2除去符號」的方式。
也許這就是你需要的線索?
這取決於你的意思是無符號... **不**遵守簽名類型的MSB。如果它是一個無符號的分隔符,我會期待以下('j'和'k')返回相同的值(它們不會):int i = 1 << 31; int j =(int)(( (uint)i)/ 2); int k = i >> 1;'。 – 2009-11-15 08:49:46
對所有人都非常非常... – ranzan 2009-11-15 08:32:45