轻松学C++之数据的表示
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
长度1„32位,该长度是由机器的编译系统决定的,本书采用的是VC(32)位
i
d
e
n
t
i
f
y
1.标识符是由字母、数字、下划线“-”组成 规 则 2.标识符中大小写字母表示的意义不同
3.标识符命名时应做到“见名知意”
特殊规则 首字符只能是字母或下划线,不能是数字
不合法的标识符
必须以字母或 者下划线开头 必须以字母或 者下划线开头 不能出现小 数点“.”
2.2.6
布尔类型
布尔型是最简单的数据类型,其只有两个值:true和false, 占用一个字节。如果要把一个整型变量转换成布尔型变量时, 其对应关系如图2-12所示。
整型变量值 布尔型变量值
0
False
1
true
2.3
变量
为了更方便表示数据,在编程的时候往往使用 一个特定的标示符指代特定的数据。该标示符 被称为变量。本节将讲解如何使用。
第2章
2.1 数 2.2 数据的描述 2.3 变量
数据的表示
2.1.1
二进制
十进制 0 1 2 3 4 5 6 7 8 9
二进制是计算机的内储存器上唯一能识别 的编码,其基本符号是“0”和“1”。
二进制 0 1 10 11 100 101 110 111 1000 1001
2
19
十进制 转化为 二进制
表2.9中出现了控制字符在表2.10做个简 单说明
NUL 空 SOH 标题开始 STX 正文开始 ETX 正文结束 EOY 传输结束 ENQ 询问字符 ACK 承认 BEL 报警 BS 退一格 HT 横向列表 LF 换行 VT 垂直制表 FF 走纸控制 CR 回车 SO 移位输出 SI 移位输入 DLE 空格 DC1 设备控制1 DC2 设备控制2 DC3 设备控制3 DC4 设备控制4 NAK 否定 SYN 空转同步 ETB 信息组传送结束 CAN 作废 EM 纸尽 SUB 换置 ESC 换码 FS 文字分隔符 GS 组分隔符 RS 记录分隔符 US 单元分隔符 DEL 删除
字符型数据类型只占据1个字节。可以给其加上 unsigned、singed修饰符,分别表示无符号字符型 和有符号字符型。其分别对应的取值范围如表2.11 所示。
数据类型
char unsigned char signed char
类型描述
字符型 无符号字符型 有符号字符型
占字节数
1 1 1
取值范围
-128~127 0~255 -128~127
1 2 9
2
4
1
2
2
0
2
1
0
0
1 1 0 0 1 1
2.1.2
八进制
由于二进制表示数字比较复杂,人们 逐步使用八进制进行数据表示。下面 讲解八进制的构成及其与二进制的转 换。 十进制 二进制 八进制
0 1 2 3 4 5 6 7 8 9 0 1 10 11 100 101 110 111 1000 1001 00 01 02 03 04 05 06 07 010 011
1.浮点类型的二进 制表示
± 符号位,在二进制中0代表+,1代表-
E
指数位,二进制中采用移位存储
M
尾数部分
二进制存储形式
... ...
符号位
指数位
尾数位
2.扩展浮点类型—— FLOAT、DOUBLE
浮点类型 单精度(float) 双精度(double) 符号位 1bit 1bit 指数位 8bit 11bit 尾数位 23bit 52bit
2.3.3 变量的声 明和定义
变量在使用之前必须首先声明和定义。声明变 量用来建立这个标示符。定义变量实现为该变 量所指代的数据分配内存空间。在C++语言中, 变量的声明和定义是同时实现的。变量的声明 和定义语法如图2-13所示。
type variable_list
变量列表
数据类型
2.3.4 不变的变 量——常量
2.2.3
整数类型
整数类型是用来表示一个整数的。在C++语 言中,使用关键字int表示。由于计算机存 储字长的限制,整型所能表示的数的范围 是数学概念下的子集。整型数可用十进制、 八进制、十六进制三种进制表示。
2.2.4
浮点类型
浮点型数据亦即实数,实数就是在数轴上 一一对应的点。我们常用浮点表示法来表 示实数,也就出现了浮点类型。浮点数是 利用指数使小数点的位置可以根据需要而 上下浮动,从而可以灵活地表达更大范围 的实数。
二进制和十六进制 的转化
0 1 1 1 0 0 1 1
7
3
7
3
0
1
1
1
0
0
1
1
2.2
数据的描述
计算机能够直接表示的数据只有数一种, 但常用的数据类型有多种。为了表示这些 不同类型的数据,C++语言提供了多种转化 方式。本节将讲解C++构词方式及几种基本 数据类型。
C++的构词方式— —标识符
在程序中,有很多变量所代表的值并不会发生变化。 为了防止这类变量不被意外情况修改,直接将这类 变量定义为常量。常量的定义方式如图2-14所示。
const type variable-list
定义变量
常量修饰符
3.总结
类型 符号位 指数位 尾数位 有效数字 数值范围
float
1bit
8bit
23bit
6~7bit
-3.4*10-38~3.4*10-38
double
1bit
11bit
52bit
15~16bit
-1.7*10-308~1.7*10-308
long double
1bit
11bit
52bit
15~16Βιβλιοθήκη Baiduit
-1.7*10-308~1.7*10-308
2.2.5
ASCII值 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
字符类型
控制字符 NUT SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI DLE DCI DC2 DC3 DC4 NAK SYN TB CAN EM SUB ESC FS GS RS US ASCII值 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 控制字符 (space) ! ” # $ % & , ( ) * + , . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? ASCII值 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 控制字符 @ A B C D E F G H I J K L M N O P Q R X T U V W X Y Z [ / ] ^ — ASCII值 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 控制字符 、 a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ DEL
0
0
1
1
1
1
二进制和八进 制的转化
1 7
1
7
0
0
1
1
1
1
2.1.3
十六进制
虽然有了八进制了,但是遇到更大的数字, 八进制表示还是不方便,于是十六进制就 诞生了。下面讲解十六进制的构成及其与 二进制的转换。
十进制 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 十六进制 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x10 0x11
#123,.COM,$100,1996Y,1_2_3,Win3.2
C++规定不能 以“#”开头
C++规定不能 以“$”开头
必须以字母或者 下划线开头
2.2.2 特殊的标 识符——关键字
asm class else goto new short this union auto const enum if operator signed throw unsigned bool continue extern inline private sizeof true using break default false int protected static try virtual case delete float long public struct typedef void catch do for main register switch typeied volatile char double friend namespace return template typename while
i
d
e
n
t
i
f
y
1.标识符是由字母、数字、下划线“-”组成 规 则 2.标识符中大小写字母表示的意义不同
3.标识符命名时应做到“见名知意”
特殊规则 首字符只能是字母或下划线,不能是数字
不合法的标识符
必须以字母或 者下划线开头 必须以字母或 者下划线开头 不能出现小 数点“.”
2.2.6
布尔类型
布尔型是最简单的数据类型,其只有两个值:true和false, 占用一个字节。如果要把一个整型变量转换成布尔型变量时, 其对应关系如图2-12所示。
整型变量值 布尔型变量值
0
False
1
true
2.3
变量
为了更方便表示数据,在编程的时候往往使用 一个特定的标示符指代特定的数据。该标示符 被称为变量。本节将讲解如何使用。
第2章
2.1 数 2.2 数据的描述 2.3 变量
数据的表示
2.1.1
二进制
十进制 0 1 2 3 4 5 6 7 8 9
二进制是计算机的内储存器上唯一能识别 的编码,其基本符号是“0”和“1”。
二进制 0 1 10 11 100 101 110 111 1000 1001
2
19
十进制 转化为 二进制
表2.9中出现了控制字符在表2.10做个简 单说明
NUL 空 SOH 标题开始 STX 正文开始 ETX 正文结束 EOY 传输结束 ENQ 询问字符 ACK 承认 BEL 报警 BS 退一格 HT 横向列表 LF 换行 VT 垂直制表 FF 走纸控制 CR 回车 SO 移位输出 SI 移位输入 DLE 空格 DC1 设备控制1 DC2 设备控制2 DC3 设备控制3 DC4 设备控制4 NAK 否定 SYN 空转同步 ETB 信息组传送结束 CAN 作废 EM 纸尽 SUB 换置 ESC 换码 FS 文字分隔符 GS 组分隔符 RS 记录分隔符 US 单元分隔符 DEL 删除
字符型数据类型只占据1个字节。可以给其加上 unsigned、singed修饰符,分别表示无符号字符型 和有符号字符型。其分别对应的取值范围如表2.11 所示。
数据类型
char unsigned char signed char
类型描述
字符型 无符号字符型 有符号字符型
占字节数
1 1 1
取值范围
-128~127 0~255 -128~127
1 2 9
2
4
1
2
2
0
2
1
0
0
1 1 0 0 1 1
2.1.2
八进制
由于二进制表示数字比较复杂,人们 逐步使用八进制进行数据表示。下面 讲解八进制的构成及其与二进制的转 换。 十进制 二进制 八进制
0 1 2 3 4 5 6 7 8 9 0 1 10 11 100 101 110 111 1000 1001 00 01 02 03 04 05 06 07 010 011
1.浮点类型的二进 制表示
± 符号位,在二进制中0代表+,1代表-
E
指数位,二进制中采用移位存储
M
尾数部分
二进制存储形式
... ...
符号位
指数位
尾数位
2.扩展浮点类型—— FLOAT、DOUBLE
浮点类型 单精度(float) 双精度(double) 符号位 1bit 1bit 指数位 8bit 11bit 尾数位 23bit 52bit
2.3.3 变量的声 明和定义
变量在使用之前必须首先声明和定义。声明变 量用来建立这个标示符。定义变量实现为该变 量所指代的数据分配内存空间。在C++语言中, 变量的声明和定义是同时实现的。变量的声明 和定义语法如图2-13所示。
type variable_list
变量列表
数据类型
2.3.4 不变的变 量——常量
2.2.3
整数类型
整数类型是用来表示一个整数的。在C++语 言中,使用关键字int表示。由于计算机存 储字长的限制,整型所能表示的数的范围 是数学概念下的子集。整型数可用十进制、 八进制、十六进制三种进制表示。
2.2.4
浮点类型
浮点型数据亦即实数,实数就是在数轴上 一一对应的点。我们常用浮点表示法来表 示实数,也就出现了浮点类型。浮点数是 利用指数使小数点的位置可以根据需要而 上下浮动,从而可以灵活地表达更大范围 的实数。
二进制和十六进制 的转化
0 1 1 1 0 0 1 1
7
3
7
3
0
1
1
1
0
0
1
1
2.2
数据的描述
计算机能够直接表示的数据只有数一种, 但常用的数据类型有多种。为了表示这些 不同类型的数据,C++语言提供了多种转化 方式。本节将讲解C++构词方式及几种基本 数据类型。
C++的构词方式— —标识符
在程序中,有很多变量所代表的值并不会发生变化。 为了防止这类变量不被意外情况修改,直接将这类 变量定义为常量。常量的定义方式如图2-14所示。
const type variable-list
定义变量
常量修饰符
3.总结
类型 符号位 指数位 尾数位 有效数字 数值范围
float
1bit
8bit
23bit
6~7bit
-3.4*10-38~3.4*10-38
double
1bit
11bit
52bit
15~16bit
-1.7*10-308~1.7*10-308
long double
1bit
11bit
52bit
15~16Βιβλιοθήκη Baiduit
-1.7*10-308~1.7*10-308
2.2.5
ASCII值 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
字符类型
控制字符 NUT SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI DLE DCI DC2 DC3 DC4 NAK SYN TB CAN EM SUB ESC FS GS RS US ASCII值 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 控制字符 (space) ! ” # $ % & , ( ) * + , . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? ASCII值 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 控制字符 @ A B C D E F G H I J K L M N O P Q R X T U V W X Y Z [ / ] ^ — ASCII值 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 控制字符 、 a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ DEL
0
0
1
1
1
1
二进制和八进 制的转化
1 7
1
7
0
0
1
1
1
1
2.1.3
十六进制
虽然有了八进制了,但是遇到更大的数字, 八进制表示还是不方便,于是十六进制就 诞生了。下面讲解十六进制的构成及其与 二进制的转换。
十进制 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 十六进制 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x10 0x11
#123,.COM,$100,1996Y,1_2_3,Win3.2
C++规定不能 以“#”开头
C++规定不能 以“$”开头
必须以字母或者 下划线开头
2.2.2 特殊的标 识符——关键字
asm class else goto new short this union auto const enum if operator signed throw unsigned bool continue extern inline private sizeof true using break default false int protected static try virtual case delete float long public struct typedef void catch do for main register switch typeied volatile char double friend namespace return template typename while