我想知道是否有可能通過使用二進制數而不是十進制數來索引數組。例如,arr [binary]。你可以用C中的二進制數索引數組嗎?
回答
是的,這絕對有可能。只是0B
int array[] = {1,2,4,6};
printf("%d\n", array[0b0001]); // prints 2
從https://gcc.gnu.org/onlinedocs/gcc/Binary-constants.html二進制常量前面加上可以使用0B語法
您能否提供一個指向描述此語法的源的鏈接? –
我不知道有多少編譯器支持這種語法。我無法找到許多引用,並且我剛剛確認C#不支持它。 –
我使用gcc在mac上運行編譯,我也在使用MPLABx和C18編譯器的PIC微處理器上使用了這種語法。 –
正如指出的寫入你的二進制數,存儲在計算機上的所有數字都是二進制的。二進制是只有可以存儲在電腦上的東西。
而且,C不支持二進制語法。 (或者也許來的C編譯器嗎?)
你可以從不過二進制字符串轉換爲這樣的:
var value = arr[BinaryToInt("1011")];
int BinaryToInt(string s)
{
int value = 0;
int bitValue = 1;
for (int i = s.Length - 1; i >= 0; i--)
{
if (s[i] == '1')
value += bitValue;
bitValue <<= 1;
}
return value;
}
- 1. 索引數組的C++二進制值
- 2. 你可以在Postgres中索引數組的元素嗎?
- 3. 你可以使用long int索引數組嗎?
- 4. C++中的全局數組可以打破二進制兼容性嗎?
- 5. 使用C++中的第二個索引數組對數組進行排序
- 6. 數組索引可以在C#中命名嗎?
- 7. C# - 可以將二進制數據編譯成模塊嗎?
- 8. 你可以爲你自己的應用程序使用二進制DLL嗎?
- 9. 變量可以用作Java中的數組索引嗎?
- 10. 修改的二進制搜索數組
- 11. 我可以識別x86二進制文件中的「函數」嗎?
- 12. 你可以將數組作爲數組中的一個值嗎?
- 13. 如何在二維數組中使用二進制搜索?
- 14. C#二維數組索引交換
- 15. 二進制搜索字符串數組
- 16. 我們可以在C中的數組中使用數組嗎?
- 17. 你可以強制一個標量或數組引用是Perl中的數組嗎?
- 18. C#獲取二進制搜索以顯示數組中的所有重複值
- 19. 如何將數組編碼爲二進制並將二進制數據解組到二進制數組中?
- 20. 二維數組中的二進制搜索
- 21. 我們可以限制索引器中索引器的數目嗎?
- 22. 十進制數可以用十進制數加/減嗎?
- 23. Python索引二維數組
- 24. 我可以用二進制而不是十六進制嵌入數字嗎?
- 25. 整數數組二進制數組
- 26. 你可以一次對兩個數組進行初始化嗎?
- 27. C++中的二進制搜索排序和索引
- 28. 在數組中使用重複元素的二進制搜索
- 29. python中的二維數組索引值
- 30. 檢索二進制數據
在計算機上,所有的數字都是二進制的。您需要更具體地瞭解您正在嘗試做什麼。 –
C源代碼中的數字可以寫成八進制,十進制或十六進制,但不是二進制。 (我猜想二進制文字可能已經添加到最近,但如果是這樣的話,我還沒有聽說過)。 – zwol
由於@ zwol並非直接說,但可以編寫一個函數將表示二進制數的字符串轉換爲一個整數。然後,您可以說'arr [binary_to_int(binary)]' – redcurry