2017-06-12 62 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

相关问题