当我通过互联网冲浪时,我使用了以下类型定义编码。我认为这可能有效。但是,我听不懂代码。您能为我解释以下代码:
#define RADIX (10)
#define DIGIT_BIT (4) /* A better way than hardcoding 4? */
#define DIGIT_PER_BYTE (CHAR_BIT/DIGIT_BIT)
#define DIGIT_BIT_MASK (~(UINT_MAX << DIGIT_BIT))
typedef struct ThirteenDigitNum
{
char unsigned digits[13/DIGIT_PER_BYTE + !!(13%DIGIT_PER_BYTE)];
} ThirteenDigitNum;
typdef struct DigitAccessInfo
{
unsigned byte_index;
unsigned shift_by;
unsigned mask;
};
是否有任何内置数据类型可以满足我的需求?
最佳答案
看起来long long int使用C ++标准为您提供了18位以上的数字(以及下面的注释,也包括C)。
http://www.cplusplus.com/reference/climits/