转自:
http://blog.163.com/zheng_he_xiang/blog/static/186505326201110272018548/
在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's, 16-bit 'short int's, and 32-bit 'int's and 'long int's. */
1.char数据类型
char类型数据所占内存空间为8位。其中有符号字符型变量取值范围为?128~127,无符号型字符变量取值范围为0~255.其限制如下:
/* 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位。其中有符号短整型变量取值范围为?32768~32767,无符号短整型变量取值范围为0~65535.其限制如下:
/* 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位。其中有符号整型变量取值范围为-2147483648~2147483647,无符号型整型变量取值范围为0~4294967295U.其限制如下:
/* 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 int和int类型一样,占有32位。在Linux GCC4.0-i386版本中,默认情况下__WORDSIZE的值为32.其定义如下:
//come from /usr/include/bits/wordsize.h
#define __WORDSIZE 32
在64位机器上,如果__WORDSIZE的值为64, long int类型数据所占内存空间为64位。其中有长整型变量取值范围为-9223372036854775808L~9223372036854775807L,无符号长整型变量取值范围为0~18446744073709551615UL.其限制如下:
/* 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 */
分享到:
相关推荐
在进行移植和优化代码时,了解这些基本数据类型的大小对于内存管理、计算效率以及兼容性非常重要。例如,在定义数组或结构体时,需要考虑数据类型占用的存储空间,以避免不必要的内存浪费。此外,理解数据类型的大小...
long int char2long(char* sz) { if (strlen(sz)==0) return 0; long num=0,num2=0; if(strlen(sz)) { for (int i=0;i(sz);i++) { memcpy(&num2,sz+i,1); num2=num2-'0'; num=num*10+num2; } } ...
Java编程语言中的基本数据类型是程序设计的基础,它们是由语言本身定义并直接支持的。Java提供了两种主要的数据类型:原始(Primitive)数据类型和引用(Reference)/对象数据类型。 1. 原始(Primitive)数据类型...
本文旨在探讨编程语言中常见的基本数据类型(`char`, `int`, `long`, `float`, `double`)在32位与64位操作系统环境下所占用的字节数量,并深入分析这些差异产生的原因及其对程序设计的影响。 #### 1. 数据类型的...
byte——Byte short——Short int——Integer long——Long float——Float double——Double ... 常用的字符串转化为基本数据类型的方法: Integer.parseInt() Long.parseLong() Double.parseDouble()
原始数据类型包括byte、short、int、long、float、double、char和boolean,而引用数据类型则包括类(class)、接口(interface)和数组。在处理数值计算时,我们可能需要在不同数据类型之间进行转换,特别是当涉及到long...
long类型是基本数据类型,而Long类型是对象类型,本文将通过示例代码详细介绍long类型和Long类型的区别和大小比较。 基本数据类型和对象类型 在Java中,数据类型分为两种:基本类型和对象类型。基本类型包括byte、...
第三章的主题是“数据的种类——数据类型”,这是学习任何编程语言的基石,理解数据类型对于编写有效的代码至关重要。 首先,我们要了解什么是数据类型。在C语言中,数据类型决定了变量能够存储的数据范围和操作...
在Java编程语言中,数据类型之间的转换是一项基本且重要的技能,尤其当涉及到不同类型的数值时。本文将详细介绍如何实现int、char、double与byte类型之间的相互转换,并通过具体的示例代码来阐述每一种转换方法。 #...
然而,原版cJson在处理某些特定数据类型时存在限制,比如不支持`long long int`这种大整数类型。针对这一问题,一个优化版的cJson库应运而生,专门解决了对`long long int`的支持,从而扩大了其在实际应用中的适用...
Java八种基础数据类型(如 int、long、char、boolean 等); String字符串; CharSequence字符序列; List列表,List中的所有元素须是前面提到的数据类型,或者是Parcelable类型(这也是本文准备讲解的); Map,Map ...
数据类型定义了数据的种类和大小。C语言中有几种基本数据类型,包括整型、字符型、浮点型和枚举类型。下面是C语言中基本数据类型的相关知识点。 1. 整型(Integer Types) 整型用来存储没有小数部分的数值。在C语言...
C++ 基本数据类型和表达式 C++ 语言中,基本数据类型是指语言本身提供的数据类型,包括整型、字符型、实型、结构体、联合体、枚举体、类和指针等。这些基本数据类型可以被修饰符所修饰,以改变它们的特性。 2.1 ...
### C++基本数据类型 在C++编程语言中,了解并掌握基本的数据类型是学习的基础。这些数据类型为程序员提供了创建变量、存储不同种类的信息的能力。本文将详细解析C++中的基本数据类型,并探讨它们的特点及用途。 #...
本文将详细介绍VC中不同数据类型之间转换的方法,特别是`CString`与`char`、`int`、`long`、`string`和`byte`等类型的相互转换。 #### `int`到`CString`的转换 当需要将整型变量转换为`CString`时,可以使用`...
数据类型定义了变量能够存储的数据种类以及该数据在内存中的占用空间大小。长度指的是数据类型在计算机内存中占用的字节数。取值范围则是指特定数据类型可以表示的最小和最大值。下面,我们将逐一解析给定文件中提到...
### Java基本语法(一)——数据类型 #### 概述 在Java编程语言中,数据类型是构建程序的基础。理解并掌握这些基本的数据类型对于学习Java至关重要。本文将详细介绍Java中的基本数据类型,包括整型、浮点型、字符...
1. **基本数据类型**:Java中有八种基本数据类型,包括两种整型(byte, short, int, long),两种浮点型(float, double),一种字符型(char)和三种布尔型(boolean)。在实验中,涉及到了int和char类型。int用于...
C语言包含5个基本数据类型:void、integer、float、double和char。 1. void: void类型表示无类型,用于不需要返回值的函数中。 2. integer: integer类型表示整数,用于存储整数值。 3. float: float类型表示浮点数...
### Java基本数据类型详解 #### 一、引言 在Java编程语言中,理解基本数据类型对于编写高效、可靠的程序至关重要。本文将详细介绍Java中的基本数据类型,包括它们的定义、范围、存储空间以及如何在实际开发中正确...