printf中的short int, int, long int和long long int

简介: hd: short int d: int ld: long int lld: long long int Linux基本数据类型大小——int,char,long int,long long int 在Linux操作系统下使用GCC进行编程,目前一般处理器为32位字宽,下面是/usr/include/limit.h文件对Linux下数据类型的限制及存储字节大小的说明。

hd: short int

d: int

ld: long int

lld: long long int

Linux基本数据类型大小——int,char,long int,long long int

在Linux操作系统下使用GCC进行编程,目前一般处理器为32位字宽,下面是/usr/include/limit.h文件对Linux下数据类型的限制及存储字节大小的说明。

/* We don't have #include_next. Define ANSI <limits.h> for standard 32-bit words.  */

/* These assume 8-bit 'char's16-bit 'short int's,   and 32-bit 'int's and 'long int's.  */

1.char数据类型

char类型数据所占内存空间为8位。其中有符号字符型变量取值范围为-128127,无符号型字符变量取值范围为0255.其限制如下:

/* Number of bits in a 'char'. */

#  define CHAR_BIT 8          //所占字节数

/* Minimum and maximum values a 'signed char' can hold.  */

#  define SCHAR_MIN -128

#  define SCHAR_MAX 127

/* Maximum value an 'unsigned char' can hold.  Minimum is 0.)  */

#  define UCHAR_MAX 255

/* Minimum and maximum values a 'char' can hold.  */

#  ifdef __CHAR_UNSIGNED__

#   define CHAR_MIN 0

#   define CHAR_MAX UCHAR_MAX

#  else

#   define CHAR_MIN SCHAR_MIN

#   define CHAR_MAX SCHAR_MAX

#  endif

2.short int数据类型

short int类型数据所占内存空间为16位。其中有符号短整型变量取值范围为-3276832767,无符号短整型变量取值范围为065535.其限制如下:

/* Minimum and maximum values a 'signed short int' can hold.  */

#  define SHRT_MIN -32768

#  define SHRT_MAX 32767

/* Maximum value an 'unsigned short int' can hold.  Minimum is 0.)  */

#  define USHRT_MAX 65535

3.int数据类型int类型数据所占内存空间为32位。其中有符号整型变量取值范围为-21474836482147483647,无符号型整型变量取值范围为04294967295U.其限制如下:

/* Minimum and maximum values a 'signed int' can hold.  */

#  define INT_MIN -INT_MAX - 1

#  define INT_MAX 2147483647

/* Maximum value an 'unsigned int' can hold.  Minimum is 0.)  */

/#  define UINT_MAX 4294967295U

4.long int数据类型

随着宏__WORDSIZE值的改变,long int数据类型的大小也会发生改变。如果__WORDSIZE的值为32,则long intint类型一样,占有32位。在Linux GCC4.0-i386版本中,默认情况下__WORDSIZE的值为32.其定义如下:

//come from /usr/include/bits/wordsize.h

#define __WORDSIZE 32

在64位机器上,如果__WORDSIZE的值为64long int类型数据所占内存空间为64位。其中有长整型变量取值范围为-9223372036854775808L9223372036854775807L,无符号长整型变量取值范围为018446744073709551615UL.其限制如下:

/* Minimum and maximum values a 'signed long int' can hold.  */

#  if __WORDSIZE == 64

#   define LONG_MAX 9223372036854775807L

#  else

#   define LONG_MAX 2147483647L

#  endif

#  define LONG_MIN -LONG_MAX - 1L

/* Maximum value an 'unsigned long int' can hold.  Minimum is 0.)  */

#  if __WORDSIZE == 64

#   define ULONG_MAX 18446744073709551615UL

#  else

#   define ULONG_MAX 4294967295UL

#  endif

5.long long int数据类型

在C99中,还定义了long long int数据类型。其数据类型限制如下:

#  ifdef __USE_ISOC99

/* Minimum and maximum values a 'signed long long int' can hold.  */

#   define LLONG_MAX 9223372036854775807LL

#   define LLONG_MIN -LLONG_MAX - 1LL

/* Maximum value an 'unsigned long long int' can hold.  Minimum is 0.)  *

# define ULLONG_MAX 18446744073709551615ULL

#  endif /* ISO C99 */

原文:

http://blog.csdn.net/ameyume/article/details/7573112

目录
相关文章
|
7月前
|
存储 算法 物联网
int8与long long的深入对比与探讨
int8与long long的深入对比与探讨
|
7月前
|
存储 编译器 程序员
int 和 long 的区别
int 和 long 的区别
|
7月前
|
Java
Java中Long转Int转字符串Int转Long以及Int超出长度判断
Java中Long转Int转字符串Int转Long以及Int超出长度判断
67 0
|
编译器
unsigned long int 和 unsigned long一样吗?
unsigned 代表的是无符号的整形数
296 0
|
机器学习/深度学习 自然语言处理 TensorFlow
Long Short-Term Memory,简称 LSTM
长短期记忆(Long Short-Term Memory,简称 LSTM)是一种特殊的循环神经网络(RNN)结构,用于处理序列数据,如语音识别、自然语言处理、视频分析等任务。LSTM 网络的主要目的是解决传统 RNN 在训练过程中遇到的梯度消失和梯度爆炸问题,从而更好地捕捉序列数据中的长期依赖关系。
134 4
YOLO V5出现RuntimeError: result type Float can‘t be cast to the desired output type long int解决方法
YOLO V5出现RuntimeError: result type Float can‘t be cast to the desired output type long int解决方法
717 0
|
存储 Java
【剑指offer知识点】Java中无符号整型、如何与int/long类型互相转化
【剑指offer知识点】Java中无符号整型、如何与int/long类型互相转化
433 0
【剑指offer知识点】Java中无符号整型、如何与int/long类型互相转化
|
机器学习/深度学习 自然语言处理 数据挖掘
【文本分类】Attention-Based Bidirectional Long Short-Term Memory Networks for Relation Classification
【文本分类】Attention-Based Bidirectional Long Short-Term Memory Networks for Relation Classification
171 0
【文本分类】Attention-Based Bidirectional Long Short-Term Memory Networks for Relation Classification
|
算法 Java 关系型数据库
如何更快地将string转换成int/long 下
如何更快地将string转换成int/long 下