如何在c中存储超过9位的数字?

时间:2014-11-17 15:20:23

标签: c typedef

当我浏览互联网时,我出了以下类型定义编码。我认为这可能有用。但是,我无法理解编码。你能解释一下以下编码:

    #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;
      };

是否有任何内置数据类型可满足我的需求?

1 个答案:

答案 0 :(得分:0)

看起来long long int使用C ++标准为您提供超过18位数字(以及下面的评论,C也是如此)。

http://www.cplusplus.com/reference/climits/