我想了解在使用浮點值對數組進行索引時會發生什麼。C++ - 當您通過浮點數組索引數據會發生什麼?
此鏈接:Float Values as an index in an Array in C++
不回答我的問題,因爲它指出了浮動應四捨五入到整數。然而,在我試圖評估的代碼,這個答案是沒有意義的,因爲該指數值將永遠只能是0或1
我試圖解決張貼任天堂編碼的挑戰。爲了解決這個問題,存在一個陳舊的陳述,它使用一個長而複雜的按位表達式來按位分配到一個數組中。
陣列被聲明爲指針
unsigned int* b = new unsigned int[size/16]; // <- output tab
然後它分配0的每個元素
for (int i = 0; i < size/16; i++) { // Write size/16 zeros to b
b[i] = 0;
}
這裏的語句的開頭。
b[(i + j)/32] ^= // some crazy bitwise expression
嵌套的內部上面的位於for循環。
我在這裏節約了大量的代碼,因爲我想盡可能多的這個問題的解決我自己的地。但我想知道是否有這種情況,你是否想要像這樣迭代數組。
必須有比浮動只是自動轉換成一整型更多的東西。這裏還有更多的事情要做。
A [數字轉換(http://en.cppreference.com/w/cpp/language/implicit_cast#Numeric_conversions)發生,從浮點型到整型。 –
不是'int/16'仍然是'int',而不是'float'。 – Jarod42
@JoachimPileborg發生編譯錯誤 –