当我通过互联网冲浪时,我使用了以下类型定义编码。我认为这可能有效。但是,我听不懂代码。您能为我解释以下代码:

    #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/

10-04 22:31
查看更多