2017-06-12 67 views
1

我需要一個4位整數在設計中用於較少的內存使用。在任何版本的C++,C++ 11,C++ 14任何可以用於設計。在C++中是否有實際的4位整數數據類型11

+0

做了4位一個結構位域 –

+0

沒有沒有這樣的類型。但是你總是可以使用'uint8_t'和掩碼和位移。 –

+2

C++中最小的整型是'char',通常是8位。你的目標是內存受限的嵌入式系統嗎?否則,嘗試這些微優化(它也會使代碼更難以閱讀,理解和維護)是更多的工作。這也可能是一些不成熟的優化。請嘗試詳細說明*爲什麼*要使用「少內存」的方式,否則可能會使用更多的CPU週期。 –

回答

5

沒有原生的4位數據類型。但是你可以使用一個8位的值來保存高/低的兩個4位值nibble

+0

半字節也僅用於結構中。是否有任何直接方式使用4位int –

+1

@AmanGupta _「有沒有什麼直接的方法來使用4位int」_編號 –

3

沒有,但你可以使用:

struct A { 
    unsigned int value1 : 4; 
    unsigned int value2 : 4; 
}; 
+1

但是這個結構也使用內存空間,所以在這種情況下使用了多少總空間。 –

+1

@emlai不幸的是[不正確]( http://coliru.stacked-crooked.com/a/a5037c96e3494cf8) –

+2

如果你使用'uint8_t'或'char'代替(假設是8位字符) – krzaq

相關問題