如何檢查系統是大端還是小端?如何檢查系統是大端還是小端?
回答
如果您使用的是.NET:請檢查BitConverter.IsLittleEndian
的值。
另一個C代碼使用聯合
union {
int i;
char c[sizeof(int)];
} x;
x.i = 1;
if(x.c[0] == 1)
printf("little-endian\n");
else printf("big-endian\n");
它是belwood使用的相同的邏輯。
雖然我認爲這不符合標準:您只能從最後一次寫入的枚舉中讀取該字段,否則可能會出現未定義的行爲,或者我誤會了? – worenga 2016-03-14 11:53:57
工會沒有在標準中指定「證明」。這是不正確的解決方案(它可能會在特定的操作系統/壓縮機中意外工作)。 – jaskmar 2016-12-30 19:46:20
有些人可以解釋一下上面的程序中的邏輯。如果初始化成員變量i,x.1 = 1,那麼x.c [0]如何變成1.我在這裏錯過了一些觀點嗎?我的理解是,union會記住最大的數據類型,並依賴於我們可以訪問的數據類型。只能訪問一個成員。任何迴應將被高度暗示 – 2018-02-13 08:44:52
A C++溶液:
namespace sys {
const unsigned one = 1U;
inline bool little_endian()
{
return reinterpret_cast<const char*>(&one) + sizeof(unsigned) - 1;
}
inline bool big_endian()
{
return !little_endian();
}
} // sys
int main()
{
if(sys::little_endian())
std::cout << "little";
}
'reinterpret_cast'不能在常量表達式中使用。 – 2014-10-11 13:17:51
@ T.C。爾加!太糟糕了。 Thnx :) – Galik 2014-10-11 13:30:50
在Linux中,`
static union { char c[4]; unsigned long mylong; } endian_test = { { 'l', '?', '?', 'b' } };
#define ENDIANNESS ((char)endian_test.mylong)
if (ENDIANNESS == 'l') /* little endian */
if (ENDIANNESS == 'b') /* big endian */
與Neeraj的版本有什麼不同? – 2016-07-29 09:56:13
在Python:
from sys import byteorder
print(byteorder)
我覺得這是最簡單和最好的答案,謝謝! – mdandr 2017-02-10 18:44:37
一個班輪用Perl(其應該是默認上安裝幾乎所有系統):
perl -e 'use Config; print $Config{byteorder}'
如果輸出以1(最低有效字節)開始,則它是一個小端系統。如果輸出以較高的數字(最重要的字節)開始,則它是一個大端系統。請參閱Config模塊的文檔。
- 1. 查找系統是小端還是大端用Perll
- 2. 要大端還是小端?
- 3. 這段代碼是否真的知道系統是小端還是大端?
- 4. 如何檢查系統是12小時還是24小時?
- 5. 如何找到單片機是大端還是小端?
- 6. 確定系統是否使用大端或小端使用C
- 7. 方法String.getBytes()是大端序還是小端序?
- 8. 如何檢查是否UDP端口是打開還是關閉
- 9. 如何檢查當前操作系統是win8還是藍色
- 10. 系統屬性檢查實例是否是後端?
- 11. 如何使用SNMP檢查端口是向上還是向下
- 12. 任何人都知道Nvidia的GPU是大還是小端?
- 13. 應該前端限制列表大小還是後端?
- 14. 如何檢查文件擴展名是大寫還是小寫?
- 15. 如何檢查int輸入是大於2147436647還是小於-2147483648?
- 16. 時間檢查:服務器端還是客戶端?
- 17. 如何檢查Pyro4客戶端是否還活着
- 18. 如何檢查客戶端連接是否還活着
- 19. Windows NDIS篩選器 - 如何檢查操作系統是否使用端口
- 20. 如何在J2ME中檢查系統日期/時間是12小時還是24小時格式
- 21. PowerShell腳本來檢查端口是打開還是關閉
- 22. 如何知道我們的系統使用C++的小端或大端?
- 23. 如何檢查端口是否可用
- 24. 如何在Wix Installer中檢查系統是Windows 7還是Windows Server 2008 R2?
- 25. 如何檢查當前的操作系統是Windows,Linux還是OSX?
- 26. 如何檢查node.js腳本是在終端還是網絡上運行?
- 27. 如何檢查linux系統是否使用大磁盤空間?
- 28. 結構大小,檢查是64位還是32位
- 29. RegEx用於檢查數字是小於還是大於
- 30. 檢查值是大於還是小於指定值
好的答案,但是這提供了一個很好的圖表:http://stackoverflow.com/a/12792301/803801 – gsingh2011 2013-10-15 23:17:09
這真的是一個很好的圖 - 謝謝你添加它。 – belwood 2014-02-21 23:33:03