[C++]cpp小笔记3 --- C++基础类型的大小和转换

原创 2013年12月04日 11:42:17

1. 类型的大小

  • A short integer is at least 16 bits wide.
  • An int integer is at least as big as short.
  • A long integer is at least 32 bits wide and at least as big as int.
  • A long long integer is at least 64 bits wide and at least as big as long.

2. sizeof and climits

int days = 0
cout << "size of days is " << sizeof(days) << endl;
cout << "size of int is " << sizeof(int) << endl;

Results:
size of days is 4
size of int is 4

climits中定义了c++中基础类型的最大值,最小值,大小的常量值。
CHAR_BIT          Number of bits in a char
CHAR_MAX       Maximum char value
CHAR_MIN        Minimum char value
SCHAR_MAX    Maximum signed char value
SCHAR_MIN     Minimum signed char value
UCHAR_MAX   Maximum unsigned char value
SHRT_MAX       Maximum short value
SHRT_MIN        Minimum short value
USHRT_MAX    Maximum unsigned short value

climits的使用
#include <climits>
// use limits.h for older systems


3.  无符号类型

unsigned short change;
unsigned int rovert;
unsigned quarterback;  //unsigned int type
unsigned long gone;
unsigned long long lang_lang;



从这张图上可以看出
If signed integer max value is 32767. 32767 + 1, result is -32768. 
If unsigned integer max value is 65535, if 65535 + 1, result is 0.

4. 类型转换。

自动类型转换:
  • C++会自动将converts bool, char, unsigned char, signed char, and short values to int.
  • The unsigned short type is converted to int if short is smaller than int. If the two types are the same size, unsigned short is con-
    verted to unsigned int. 
    This rule ensures that there’s no data loss in promoting unsigned short.
  • When an operation involves two types, the smaller is converted to the larger.
强制转换:

int a = 0;
double b = (double)a; 

OR 

double b = double(a);

double b = static_cast<double> (a);

c++中常见的类型转换int,string,float

1、int型与string型的互相转换 最佳实践: int型转string型   [cpp] view plain copy void int2str(const ...
  • wangqing_12345
  • wangqing_12345
  • 2016年04月21日 17:07
  • 2871

C++之基本数据类型转换和转换函数

C++语言中类型转换有两种:隐式转换和强制转换。在类型转换的过程中还有保值转换和非保值转换之分。保值转换是安全的,数据精度不会受到损失,如数据类型有低向高转换;非保值转换是不安全的,数据精度会受到损失...
  • erlian1992
  • erlian1992
  • 2015年02月04日 16:35
  • 1334

C++基本数据类型及类型转换

http://blog.csdn.net/pipisorry/article/details/25346379 c++基本数据类型 什么样的数据算是byte类型,int类型,float类型,doub...
  • pipisorry
  • pipisorry
  • 2014年05月09日 00:15
  • 1682

C++ 4种强制类型转换

C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast形式:class_name (expression) ,其中class_n...
  • xiongqiaochu
  • xiongqiaochu
  • 2017年04月11日 18:30
  • 297

[c++基础] 四种类型转换和隐式类型转换

static_cast( expression )   用于数值类型之间的转换,也可以用于指针之间的转换,编译时已经确定好,效率高,但须要自己保证其安全性。 (1)用于数值之间的转化, 可以在相关指...
  • qq_26304333
  • qq_26304333
  • 2017年04月05日 15:40
  • 290

c++中的4种类型转换

1.C++中有哪4个和类型转换相关的关键字?这些关键字都有什么特点?应该在哪些场合下使用.    C语言中的强制类型转换可以随意的转换我们想要的类型了,格式如下(类型) 变量名;    为...
  • xtzmm1215
  • xtzmm1215
  • 2015年06月12日 21:09
  • 2802

C++类的自动转换和强制转换详解和实现

首先说一下C++如何处理内置类型转换的:   分为三种情况: (1)如果要进行的转换之间是兼容的,C++自动将值转换为接收变量的类型: 如: int count = 8.8;          dou...
  • lishuzhai
  • lishuzhai
  • 2016年03月08日 11:37
  • 3354

C++四种类型转换机制

本文主要借鉴自cplusplus中关于类型转换的内容。传统的类型转换主要有以下两种形式:double x = 10.3; int y; y = int (x); // functional no...
  • Swartz2015
  • Swartz2015
  • 2017年04月07日 21:50
  • 629

C/C++的数值类型隐式类型转换

C/C++在二进制的基础上抽象了常用的数值类型:char, uchar, short, ushort, int, uint, long, ulong, float, double。每种数值类型能表达的...
  • imturkey
  • imturkey
  • 2015年11月10日 11:14
  • 1123

C++四大类型转换

C++ 是一门强类型语言(C语言是弱类型语言),不同自定义类型之间的转换必须进行显式转换。C++ 中提供了四种转换操作符来细分显式类型转换。因为是操作符,所以他们不属于任何的namespace,也就不...
  • Robin__Chou
  • Robin__Chou
  • 2016年07月19日 17:17
  • 917
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[C++]cpp小笔记3 --- C++基础类型的大小和转换
举报原因:
原因补充:

(最多只允许输入30个字)