stdint.hC標準函数庫中的头文件,定义了具有特定位宽的整型,以及对应的宏;还列出了在其他标准头文件中定义的整型的极限。

类型

编辑

具有特定位宽的整型

编辑
typedef signed integer type int8_t;     // optional
typedef signed integer type int16_t;    // optional
typedef signed integer type int32_t;    // optional
typedef signed integer type int64_t;    // optional
typedef unsigned integer type uint8_t;  // optional
typedef unsigned integer type uint16_t; // optional
typedef unsigned integer type uint32_t; // optional
typedef unsigned integer type uint64_t; // optional

位宽不少于指定值的最快速的整型

编辑
typedef signed integer type int_fast8_t;
typedef signed integer type int_fast16_t;
typedef signed integer type int_fast32_t;
typedef signed integer type int_fast64_t;
typedef unsigned integer type uint_fast8_t;
typedef unsigned integer type uint_fast16_t;
typedef unsigned integer type uint_fast32_t;
typedef unsigned integer type uint_fast64_t;

位宽不少于指定值的整型

编辑
typedef signed integer type int_least8_t;
typedef signed integer type int_least16_t;
typedef signed integer type int_least32_t;
typedef signed integer type int_least64_t;
typedef unsigned integer type uint_least8_t;
typedef unsigned integer type uint_least16_t;
typedef unsigned integer type uint_least32_t;
typedef unsigned integer type uint_least64_t;

足够表示对象指標的整型

编辑
typedef signed integer type intptr_t;    // optional
typedef unsigned integer type uintptr_t; // optional

具有最大位宽的整型

编辑
typedef unsigned integer type uintmax_t;
typedef signed integer type intmax_t;

编辑

具有特定位宽的整型的极限

编辑
  • INTN_MIN 为 -(2N-1)
  • INTN_MAX 为 2N-1 - 1
  • UINTN_MAX 为 2N - 1

位宽不少于指定值的整型的极限

编辑
  • INT_LEASTN_MIN 为 -(2N-1)
  • INT_LEASTN_MAX 为 2N-1 - 1
  • UINT_LEASTN_MAX 为 2N - 1

位宽不少于指定值的最快速的整型的极限

编辑
  • INT_FASTN_MIN 为 -(2N-1)
  • INT_FASTN_MAX 为 2N-1 - 1
  • UINT_FASTN_MAX 为 2N - 1

足夠表示對象指標的整型的極限

编辑
  • INTPTR_MIN 為 -(215 - 1)
  • INTPTR_MAX 為 215 - 1
  • UINTPTR_MAX 為 216 - 1

具有最大位宽的整型的极限

编辑
  • INTMAX_MIN 为 -(263 - 1)
  • INTMAX_MAX 为 263 - 1
  • UINTMAX_MAX 为 264 - 1

其它整型的极限

编辑
  • ptrdiff_t
    • PTRDIFF_MIN 为 -65535
    • PTRDIFF_MAX 为 +65535
  • sig_atomic_t
    • SIG_ATOMIC_MIN
    • SIG_ATOMIC_MAX
  • size_t
    • SIZE_MAX 为 +65535
  • wchar_t
    • WCHAR_MIN
    • WCHAR_MAX
  • wint_t
    • WINT_MIN
    • WINT_MAX

整型常量宏

编辑

下述类似于函数的宏,把整型常量值扩展适合其数据类型。

  • 位宽不少于指定值的整型常量的宏。例如:UINT64_C(0x123) 扩展为 0x123ULL
    • INTN_C(value) 把有符号整型值 value 扩展以适应数据类型 int_leastN_t
    • UINTN_C(value) 把无符号整型值 value 扩展以适应数据类型 uint_leastN_t
  • 具有最大位宽的整型常量的宏。
    • INTMAX_C(value) 把有符号整型值 value 扩展以适应数据类型 intmax_t
    • UINTMAX_C(value) 把无符号整型值 value 扩展以适应数据类型 uintmax_t

参考文献

编辑

📚 Artikel Terkait di Wikipedia

无符号数

each of the signed integer types, there is a corresponding (but different) unsigned integer type (designated with the keyword unsigned) that uses the same

Visual Basic .NET

XML注释,可以被NDoc等工具处理而自动生成文档; 操作符重载; 支持在其它语言中已经广泛使用的unsigned integer数据类型; 支持在许多C衍生编程语言已提供的复合操作符如:"+=", "-="; IsNot专利:If Not X Is Y表达式被转换成If

While迴圈

counter as Integer dim Tick as Integer counter=5 tick=1 Print "Start" while counter>0 counter=counter-tick '迴圈語句 Wend Print "End" unsigned int counter

Trinity桌面环境

(编). DistroWatch: Exe GNU/Linux. DistroWatch. Copenhagen, Denmark: Unsigned Integer Limited. 26 August 2017 [8 September 2017]. (原始内容存档于2017-12-05).  Smith

通訊埠

傳輸層協議,如傳輸控制協議(TCP)與使用者資料包協定(UDP),在数据包表頭中,定義了來源埠號與目的埠號。一個通訊埠號使用16位元无符號整數(unsigned integer)來表示,其範圍介於0與65535之間。在TCP協定中,埠號0是被保留的,不可使用。1--1023 系统保留,只能由root用户使用。1024--4999

可变参数模板

template<> struct make_integer_sequence<1> : seq<0> {}; int printItem(unsigned k) { std::cout << k << ' '; return 0; } template<unsigned... I1> void printTemplate(seq<I1

类型双关

754标准,就可以用类型双关获取浮点数的符号位(sign bit)做整型比较: bool is_negative(float x) { unsigned int *ui = (unsigned int *)&x; return *ui & 0x80000000; } 注意有一些特例,如x是负0,前一种实现返回false而第二种实现返回true

埃拉托斯特尼筛法

eratosthenesSieve(unsigned long long int N, int verbose) { // prime numbers are positive, better to use largest unsiged integer unsigned long long int i