2.1.1-2.1.2 变量的基本类型及转换
来源:互联网 发布:apache限制ip访问频率 编辑:程序博客网 时间:2024/06/05 19:59
第二章 变量的基本类型
2.1 基本内置类型
- 算数类型(arithmetic type):字符、整型数、布尔值和浮点数
- 空类型(void):不对应具体值,仅用于一些特殊 场合,例如 void main,当函数不反悔任何值时使用空类型作为返回类型。
2.1.1算数类型
- 整型 :包括字符和布尔类型
- 浮点型
算数类型:
基本的字符类型为char,一个char的空间应确保可以存放机器基本字符集中任意字符对应的数字值,也就是说,一个char的大小和一个机器字节一样。也就是8位。
字节 Byte
大多数计算机以2的整数次幂个比特作为块来处理内存,可寻址的最小内存块称为“字节”。一般包括8个二进制位。
字 Word
字由字节构成,例如32或64比特构成,也就是4或8字节。
char和int的区别
int i=55;
cout<< i,就是55
int i = ‘abc’;
cout<< i,结果是6382179
因为’a’的ASCII值为97,内存中占一个字节8位,就是01100001,b是01100010,c是01100011.由于int是32位,不够的位用0补齐,a是高位所以存到高地址位,四个字节在内存中就是
01100011
01100010
01100001
00000000
这样读取的时候跟存入的时候正好相反,先读高地址位,然后低地址位,也就是00000000 01100001 01100010 01100011,对应的十进制数为6382179。
char i=55;
系统会根据在ASCII表中这个整型值代表的控制字符是什么,就输入什么,表中55是数字7的ASCII值,所以cou<< i,结果是7.
char i= 1 ;
cout结果为☺
char i=’1234’;
c++会认为单引号中每一个数值看作一个字符字面值,也就是说1 2 3 4各占一个字节,但是char i只占一个字节,所以会截取其中低位的’4’给i。cout结果为4.
2.1.2 类型转换
bool b=42; //b为真int i=b; //i=1i=3.14; // i的值为3double pi=i; //pi的值为3.0unsigned char c=-1; //假设char占8比特,c的值为255,也就是ASCII值,查表对应输出.signed char c2=256; //假设char占8比特,c2的值是未定义的,因为ascii表只到255.
含有无符号类型的表达式
unsigned u=10;int i= -42;std::cout<< i+i << std::endl; //输出-84std::cout<< i+u << std::endl; //如果int占32位,输出4294967264
第二个输出表达式中,相加前先把整数-42转换为无符号数。
unsigned u1 = 42, u2 = 10;std::cout<< u1-u2 << std::endl; //结果为32std::cout<< u2-u1 << std::endl; //结果是取模后的值,为4294967264,二进制为11111111111111111111111111100000
无符号数不会小于0!运算中如果出现负数,都要将之转化为无符号数!!
2.1.2节练习
#include <iostream>int main(){ unsigned u=10, u2=42; std::cout<< u2-u << std::endl; std::cout<< u-u2 << std::endl; int i=10, i2=42; std::cout << i2-i << std::endl; std::cout << i-i2 << std::endl; std::cout << i-u << std::endl; std::cout << u-i << std::endl; return 0;}
输出结果为:
32
4294967264
32
-32
0
0
2016 12.8 一天看了两节。
- 2.1.1-2.1.2 变量的基本类型及转换
- 基本变量类型的类型转换
- Golang的变量常量及基本类型
- 第二章 头文件、变量和基本类型(2)——算术类型及类型转换
- 基本的变量类型
- 变量的类型转换
- 变量类型的转换
- 变量的类型转换
- 变量的类型转换
- java中的变量及变量类型转换
- javaScript基本包装类型及变量定义的区别
- 基本类型的转换
- 基本类型的转换
- 基本类型的类型转换
- 基本类型的类型转换
- byte与进制及基本类型间的转换
- JAVA的基本类型及自动转换问题
- JAVA的基本类型及自动转换问题
- 二手电脑与Ubuntu的经历-1-适合装Linux的电脑
- (OK) android-5.0 sensor工作原理—sensorservice的启动(二)
- Android开发——开关控件Switch和ToggleButtn
- 几种常见的加密方式介绍
- eclipse maven plugin 插件 安装 和 配置
- 2.1.1-2.1.2 变量的基本类型及转换
- 二手电脑与Ubuntu的经历-2-显卡知识
- 【30.49%】【codeforces 569A】Music
- 移动端屏幕适配rem
- Spark总体架构
- 初识HDFS分布式文件系统
- Object类到底实现了哪些方法
- 周四沙龙总结-付金田-2016年12月8日
- 二手电脑与Ubuntu的经历-3-二手电脑购买技巧