King Arthur
Game World
2012年2月16日
C/C++ Base 1 - Overview of variable type
1.常见变量类型
C/C++常见变量类型表格
变量类型
大小(单位:Byte)
char
1
short
2
int
4
long
4
long long
8
float
4
double
8
bool
1
表格 1
常见变量类型见表格 1。
2.char类型
1) char类型的变量在内存中占1个字节,1个字节由8个二进制位组成,每个二进制位都有0或者1两种情况,所以char类型一共可以表示2的8次方也就是256个数字。
2)
unsigned char:
取值范围0~255
最小值0
0
0
0
0
0
0
0
0
最大值255
1
1
1
1
1
1
1
1
signed char:
取值范围-128~127
最小值-128
1
1
1
1
1
1
1
1
最大值127
0
1
1
1
1
1
1
1
3)有符号signed与无符号unsigned的区别在于,有符号时第一位表示的是符号位,0表示符号为正即正数,1表示负数。无符号时第一位则是数字的有效位。
4)char类型的变量本质上保存的是一个取值范围较小的数字,只是在输出的时候该数字会被映射为对应的符号然后再输出。
3.short、int、long和long long类型
该4种类型基本相同,只是占用的内存大小不同,占用内存越大则取值范围越大,取值范围的计算方法与char类型相同。
4.负数
负数的表示方法为该正数的二进制按位取反然后加1。例如正数7(short类型)的二进制为 00000000 00000111,则-7的二进制为 11111111 11111001。
5.符号扩展
当将一个取值范围较小的负数赋值给一个取值范围较大的对象时就会自动进行符号扩展操作。例如将负数-7(short类型)赋值给int类型的变量。
short类型下:11111111 11111001
int类型下:11111111 11111111 11111111 11111001
6.float与double类型
1)这两种类型被称作浮点型与双精度浮点型,可以认为后者的精度为前者的两倍。
2)浮点型的储存结构如图 1所示。
图 1
float类型一共占4个字节也就是32位,其中A区域为符号位占1位(A的值假设为s)。B区域表示的是指数,取值范围为0~255,占8位(B的值假设为exp)。C区域为小数位占23位,
该23位全为1时表示的数值依次为2的-1次方、2的-2次方、2的-3次方等等以此类推
。(C的值假设为xxxxx)
则表达式可表示为:(-1)的s次方 * 1.xxxxx * 2的exp-127次方
假设float f = 5.0f; 则f可以写成(-1)的0次方 * 1.25 * 2的129-127次方,也就是1 * 1.25 * 4,其中s为0,xxxxx为0.25即2的-2次方,exp为129,表示成二进制为:
0 10000001 01000000000000000000000
3)double与float类型相类似
7.bool类型
bool类型则比较简单,它只占1个字节,它的值只有true和false即1和0两种情况。
posted @
2012-02-16 01:44
King Arthur 阅读(259) |
评论 (0)
|
编辑
收藏
仅列出标题
导航
C++博客
首页
新随笔
联系
聚合
管理
<
2012年2月
>
日
一
二
三
四
五
六
29
30
31
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
1
2
3
4
5
6
7
8
9
10
统计
随笔 - 1
文章 - 0
评论 - 0
引用 - 0
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
C/C++ Base(1)
(rss)
随笔档案
2012年2月 (1)
搜索
最新评论