c++类型所占的字节和表示范围
一:数值类型的大杂烩
(1)short、int 和 long 类型都表示整型值。存储空间的大小不同
一般, short 类型为半个机器字长,int 类型为一个机器字长,而 long 类型为一个或两个机
器字长(在 32 位机器中 int 类型和 long 类型通常字长是同样的)。
(2)常量的定义以及表示范围:
unsigned int 0~4294967295 就是2^32-1
int -2147483648~2147483647 就是2^(-31) ~ 2^31-1
unsigned long 0~4294967295 就是2^32-1
long -2147483648~2147483647 就是2^(-31) ~ 2^31-1
long long的最大值:9223372036854775807 就是2^63-1
long long的最小值:-9223372036854775808 就是2^(-63)
unsigned long long的最大值:18446744073709551615 就是2^64-1
__int64的最大值:9223372036854775807 就是2^63-1
__int64的最小值:-9223372036854775808 就是2^(-63)
unsigned __int64的最大值:18446744073709551615 就是2^64-1
(3)c 和 c++的类型所占的字节数
32位编译器
char :1个字节
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器) int * 也是 4字节
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
64位编译器
char :1个字节
char*(即指针变量): 8个字节 int * 也是 8字节
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 8个字节(32位和64位变得就是long,其它的均没有变化啊)
long long: 8个字节
unsigned long: 8个字节
二:常值常数类型的 ----- u / U 和 l/L 以及ul/UL的几点说明
(1)使用条件
1. 数值常数有:整型常数、浮点常数;
2. 仅仅有数值常数才有后缀说明;
3. 数值常数后缀不区分字母大写和小写。
(2)整型常数的表示形式有:
十进制形式、以0开头的八进制形式、以0x开头的十六进制形式,无二进制形式。整型常数默认是signed int的。
对整型常数进行类型转换的后缀仅仅有:u或U(unsigned)、l或L(long)、u/U与l/L的组合(如:ul、lu、Lu等)。例:100u; -123u; 0x123l;
(3)浮点常数的表示形式有:
科学计数形式和小数点形式。浮点常数默认是double的。
对浮点常数进行类型转换的后缀仅仅有:f或F(单精度浮点数)、l或L(长双精度浮点数)。
(注:因浮点型常数总是有符号的,故没有u或U后
缀)。例:1.23e5f; 1.23l; -123.45f;
(4)整型常量的类型是下列对应表中第一个能表示其值的类型:
无后缀的十进制整数常量:int,long int,long long int
以字母u或U为后缀的十进制整型常量:unsigned int,unsigned long int,unsigned long long int
以字母l或L为后缀的十进制整型常量:long int,long long int
同一时候以字母u或U和字母l或L为后缀的十进制整型常量:unsigned long int。unsigned long long int
以字母ll或LL为后缀的十进制整型常量:long long int
同一时候以字母u或U和字母ll或LL为后缀的十进制整型常量:unsigned long long int
无后缀的八进制或十六进制常量:int。unsigned int,long int,unsigned long int,long long int,unsigned long long int
以字母u或U为后缀的八进制或十六进制常量:unsigned int,unsigned long int,unsigned long long int
以字母l或L为后缀的八进制或十六进制常量:long int。unsigned long int。long long int,unsigned long long int
同一时候以字母u或U和字母l或L为后缀的八进制或十六进制常量:unsigned long int,unsigned long long int
以字母ll或LL为后缀的八进制或十六进制常量:long long int。unsigned long long int
同一时候以字母u或U和字母ll或LL为后缀的八进制或十六进制常量:unsigned long long int
c++类型所占的字节和表示范围的更多相关文章
- C语言中的各种类型所占的字节大小
一)64位系统和32位有什么区别? 1.64bit CPU拥有更大的寻址能力,最大支持到16GB内存,而32bit只支持4G内存 2.64位CPU一次可提取64位数据,比32位提高了一倍,理论上性能 ...
- 一个int类型究竟占多少个字节
一个int占多少个字节? 这个问题我们往往得到的答案是4. 可是int究竟占多少个字节,却跟你的机器环境有关. As you can see, the typical data type sizes ...
- php中int类型在不同平台所占不同字节数理解
1.在不同平台上占字节数与最大值 在32位平台上int占4个字节,在64位平台上int占8个字节,PHP_INT_SIZE 在32位平台上int的最大值2^31 - 1,在64位平台上int最大值2^ ...
- C语言中几种类型所占字节数
其实C标准并没有具体给出规定哪个基本类型应该是多少个字节数,而且这个也与OS.编译器有关,比如同样是在32位操作系统,VC++的编译器下int类型为4个字节,而在tuborC下则是2个字节. 下面给出 ...
- C#/Java/C/C++基本类型所占大小及表示范围
C/C++的数据类型: 一,整型 Turbo C: [signed] int 2Byte//有符号数,-32768~32767 unsigned int 2Byte //无符号数,只能表示整数 ...
- 在C语言中基本数据类型所占的字节数
基本数据类型所占的字节数其实跟C语言本身没有太大的关系,它取决于编译器的位数,下面这张表说明了不同编译器下基本数据类型的长度: 32位编译器中各基本类型所占字节数: 注:对于32位的编译器,指针变量的 ...
- Java中boolean类型到底占用多少字节
虽然 Java 虚拟机定义了 boolean 这种数据类型,但是只对它提供了非常有限的支持.在 Java 虚拟机中没有任何供 boolean 值专用的字节码指令,在 Java 语言之中涉及到 bool ...
- Java的八种基本类型:(按字节来分)
Java的八种基本类型:(按字节来分) boolean 布尔型 1个字节 8bit(8位) byte 字节类型 1个字节 char 字符类型 2个字节 short ...
- ORACLE中一个字符占多少字节?
问题描述 或许你会说一个中文字符占2个字节,这是一定的?如何计算一个字符串的字节数? 解决方案 在oracle中一个字符特别是中文占几个字节是不同的. 比如我创立一个表create table tes ...
随机推荐
- min_free_kbytes是内存最安全值的阈值,然后这个值是怎么影响到系统内存回收的呢?
min_free_kbytes 内存域水印值:min_free_kbytes 当不设置的时候:sqrt(16M)=4k 4k*4 = 16k 设置内存水印值的函数是: 6792 /* 6793 * I ...
- [洛谷P4346][CERC2015]ASCII Addition
题目大意:给一个像素的$a+b$,每个数字为$7\times5$的像素,每两个数字之间有间隔 题解:乱搞读入 卡点:无 C++ Code: #include <cstdio> #inclu ...
- [洛谷P3807]【模板】卢卡斯定理
题目大意:给你$n,m,p(p \in \rm prime)$,求出$C_{n + m}^m\bmod p(可能p\leqslant n,m)$ 题解:卢卡斯$Lucas$定理,$C_B^A\bmod ...
- 【CZY选讲·Yjq的棺材】
题目描述 Yjq想要将一个长为宽为的矩形棺材(棺材表面绝对光滑,所以棺材可以任意的滑动)拖过一个L型墓道. 如图所示,L型墓道两个走廊的宽度分别是和,呈90°,并且走廊的长度远大于. 现在Hja ...
- bzoj2957:楼房重建
题意:http://www.lydsy.com/JudgeOnline/problem.php?id=2957 sol :首先考虑转化问题,即给你一个斜率序列,让你动态维护单调栈 考虑线段树,令ge ...
- JavaScript 代码性能优化总结
本文转自:http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=400360237&idx=2&sn=eb00241cb3b ...
- spring in action 学习笔记六:bean在不同情况下的默认id号或者将名字
bean如果不知名id是什么它一般都有一个id或者讲名字. 第一种情况:组件扫描的情况:默认的id号或者bean的name是类名的首字母小写. 代码如下: package com.qls.beanli ...
- Linux命令之type,whatis,whereis,which,locate,find
第一个:type--查询一个命令的类型 -查询一个命令为内部或者外部命令的命令: -linux的众多命令中,有内部命令和外部命令,这时可以用type命令来查询一个命令到底是属于内部命令还是属于外部命令 ...
- SpringMVC+MyBatis+Shiro 配置文件详解
1.web.xml文件的配置 <?xml version="1.0" encoding="UTF-8"?> <web-app version= ...
- [ CodeVS冲杯之路 ] P1294
不充钱,你怎么AC? 题目:http://codevs.cn/problem/1294/ 随手一打就是这么漂亮的全排列,想当年我初一还是初二的时候,调了1个多小时才写出来(蒟蒻一枚) 直接DFS每次枚 ...