C++ short/int/long/long long 等数据类型大小

表 1 整型数据类型
数据类型 字节大小 数值范围
short int (短整型) 2 字节 -32 768 ?+32 767
unsigned short int
(无符号短整型)
2 字节 0 ?+65 535
int (整型) 4 字节 -2 147 483 648 ?+2 147 483 647
unsigned int (无符号整型) 4 字节 0 ?4 294 967 295
long int (长整型) 4 字节 -2 147 483 648 ?+2 147 483 647
unsigned long int
(无符号长整型)
4 字节 0 ?4 294 967 295
long long int (超长整型) 8字节 -9 223 372 036 854 775 808~9 223 372 036 854 775 807
unsigned long long int
(无符号超长整型)
8字节 048 446 744 073 709 551 615

注意,超长整型和无符号超长整型是在 C++11 中引入的。

1、整形:表示整数、字符和布尔值的算数类型的合称;

2、字符类型有两种:char和wchar_t,char类型通常是单个字节,wchar_t类型用于扩展字符集,比如汉字和日语,这些字符集不能用单个char表示;

3、short、int、long类型都表示整形,一般来说(32位机器),short占16位,两字节;int占32位(根据系统而定,32位机下为4个字节),四个字节;long在32位机器上和int一样,也是四个字节(所以感觉C++ Primer中这块的概念有误,1字=2字节 才对)

4、默认情况下,int、short、long都是带符号的,即signed;

5、和其他整形不同,char有三种表示方式:普通char、unsigned char、signed char。虽然有三种不同的类型,但是只有两种表示方式。可以使用unsigned char或者signed cahr表示char类型,具体使用哪种方式由编译器而定。

6、整型的赋值:当一个超出范围的值被赋给一个变量时,会怎么赋值呢?答曰:由编译器来决定,但一般都是取该值对该类型取值数目求模后的值(但不能保证所有编译器都会这样处理),e.g. 试图将336存储到8位的unsigned char中,实际赋值为80,因为80是336对256求模后的值,同理,如果把-1赋给8位的unsigned char,那么结果是255,因为255是-1对256求模后的值;

7、浮点数float、double、long double分别表示单精度、双精度、扩展精度浮点数,一般float为32位,double为64位,long使用96位或者128位。类型的取值范围决定了浮点数所含的有效数字位数,对于实际程序来说,float类型只能保证6位的有效数字,而double类型至少可以保证10位的有效数字。

8、C++的标准并没有规定每种类型占多少位,只是说 “sizeof(long)>=sizeof(int)>=sizeof(short)”,所以具体的字节数都是根据编译器来确定的。
————————————————

原文地址:https://www.cnblogs.com/sylar5/p/11520264.html

时间: 2024-10-12 09:43:36

C++ short/int/long/long long 等数据类型大小的相关文章

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

转自:http://paddy-w.iteye.com/blog/1403217 在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'

char,short ,int ,long,long long,unsigned long long数据范围

速查表: char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned short 0 ~ 65535 (2 Bytes)int -2147483648 ~ +2147483647 (4 Bytes)unsigned int 0 ~ 4294967295 (4 Bytes)long == intlong long -9223372036854775808 ~ +9223372036854775807 (8 Bytes)doub

[PCS] Hw1. Short int &amp; Float

一.使用 short int 和 float 两种类型的变量计算和验证两个问题. 1. x ^ 2 >= 0 ? // 使用 C++ 编码如下(只显示 main 函数内的部分,头文件包括<iostream>, <limits.h>, <float.h>, <stdio.h>): // 对于 short int 类型,其范围应为 [-32768,+32767] for (short int i = -32768; i < 32768; i++){

java中整数类型(short int lang)的存储方式

在java中的整数类型有四种,分别是 byte  short int long 其中byte只有一个字节 0或1,在此不详细讲解. 其他的三种类型如下: 1.基本类型:short 二进制位数:16包装类:java.lang.Short最小值:Short.MIN_VALUE=-32768 (-2的15此方)最大值:Short.MAX_VALUE=32767 (2的15次方-1) 2.基本类型:int 二进制位数:32包装类:java.lang.Integer最小值:Integer.MIN_VALU

【C语言】测试系统各数据类型大小代码

测试各系统不同数据类型大小代码 一.相关基础知识 不同环境下各数据类型大小可能不相等,(某些环境下,类型带下可以选择)故测了就知道! 二.具体内容 三.分析总结 四.实例测试 #include<stdio.h> int main(void) { signed int a1; unsigned int a2; signed long int a3; unsigned long int a4; signed long long int a5; unsigned long long int a6;

C++基本数据类型大小及表示范围

ANSI C/C++基本数据类型: Type Size 数值范围 无值型void 0 byte 无值域 布尔型bool 1 byte true   false 有符号短整型short [int] /signed short [int] 2 byte -32768~32767 无符号短整型unsigned short [int] 2 byte 0~65535 有符号整型int /signed [int] 4 byte -2147483648~2147483647 无符号整型unsigned [in

各种语言数据类型大小

C语言 short,long 用于限定整数类型,如:short int n:long int m:在此类变量声明中,int可以省略:short n :long m:引入这两个限定符的目的是为了提供不同长度的整数.在不同的软硬件环境下,int,short,long的长度可能不一样,但可以确定的是16(位)<=short<=int<=long, long>=32(位) signed,unsigned用于限定char或int.分别表示有符号char/int和无符号char/int. lo

c/c++基本数据类型大小

各个类型的变量长度由编译器来决定(实际上与操作系统位数和编译器都有关)使用时可用sizeof()得到,当前主流编译器一般是32位或64位. 类型 32位 64位 char 1 1 short int 2 2 int 4 4 long int 4 8 long long int 8 8 char*  4 8 float 4 4 double  8 8 注:指针类型存储是指所指向变量的地址,32位机只需32 bit,64位机需要64 bit

柔性数组,数据类型大小

http://www.nowamagic.net/academy/detail/1204478 http://www.nowamagic.net/academy/detail/1204480 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 template<class T1, class T2> 5 class MyPair { T1 first; T2 second; } ; 6 class MyClass1 { cha