- 在线时间
- 8 小时
- 最后登录
- 2014-5-13
- 注册时间
- 2012-5-14
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 130 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 79
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 71
- 主题
- 6
- 精华
- 0
- 分享
- 0
- 好友
- 7
升级   77.89% TA的每日心情 | 怒 2012-6-28 09:58 |
|---|
签到天数: 4 天 [LV.2]偶尔看看I
- 自我介绍
- 本人是应用英语专业毕业
|
2.2.2 数据的表示1 f8 k: q! {0 P$ T5 n9 \0 ?
在前面描述计算税后工资的例子中,要告诉计算机:工资是3000元、税率5%,计算它的税后工资。该怎么告诉计算机呢?而且,要确定告诉计算机工资是3000而不是2999.99,税率是5%而不是5‰,这就涉及到数据在C语言中的表示了。
- Y& K8 c0 m+ F5 m, R) B为了数据能在C语言中容易表示,数据被分为了好多的类!每一类的数据被叫做属于同一种数据类型。对于每一种运算,不同的数据类型计算出来的结果都是不一样的。这就好比同样的化学纤维做出来的衣服类型不同使用就不同了。男士的西服让女士穿着就显着别扭,女士的裙子要是被男士穿着就要闹出尴尬了,更甚者总不能把裤子穿在头上吧!所以,得分清楚数据的数据类型然后才能正确的使用它们。
T, @0 h% z- ?4 a' J3 S6 D2.2.3 数据类型面面观——精度和范围5 q% n5 V1 C, Z8 j6 p' Q6 X8 l9 i
在了解C语言数据类型之前,先了解两个概念——精度和范围,这是讨论数据类型的重点。6 @: a: @! m1 |# C$ V ]' I# e- J
1.精度
+ b: C9 e9 ?; ?7 x3 e, N精度是用来说明可以表示数据的最小的粒度,也就是可以表示的精细程度。讲个笑话,一个人过收费站,过磅整车重4.29吨。然后司机上了一趟厕所,又过收费站,过磅,整车重4.20吨。一趟厕所下来,减少了0.09吨,共90公斤。电子称只能称到0.1吨,所以司机上不上厕所对于称重没有影响,因为电子称的精度不够。这个故事告诉我们不必憋尿来增加车重,没必要,呵呵…
4 t, Z! a+ z6 ]" k+ H2.范围
% K) A" ^- N' k! ]范围是用来说明可以表示的数据的最大尺度,也就是可以表示的广度。不同数据表示的要使用不同的广度,不然就会出现用游标卡尺去量万里长城的笑话了。游标卡尺虽然精度很细,但是范围远远不够,估计把长城量完也至少也得好几年吧。还不如用卫星直接去测呢,瞬间搞定!
! f0 C; ~( U6 Y% x0 O a- H2.2.4 C语言基本数据类型0 d9 a$ L0 S; g. t0 D
精度和范围(也就是广度)之间得有个权衡,很多时候有精度没有广度的,或者是有广度没精度的。就像游标卡尺和卫星测量一样,需要我们选择合适。在C语言中,有三种基本的数据类型供我们选择,它们有着不同的精度和广度,可以根据自己的需要选择合适的。这三种数据类型分别是整形、浮点型、字符型,它们可谓是C语言数据的三大变形金刚。
2 |5 V% }+ `5 _6 h" N1.整型
. M+ ~7 s& ^& i3 g整型在C语言中是用来表示整数的,主要是用符号int表示。为了满足不同的需要,整型按照可表示的范围分为以下几类:整型(或者叫一般整型)、短整型、长整型。短整型用来表示较小范围的数,长整型用来表示较大范围的数。这就好像你要装水得有瓢、或有水桶、或又有缸一样,都是用来装水,但是分别用于不同的用途。对于不同的整型,在C语言中使用不同的符号表示:
4 O) u* g7 Q z. p6 b 整型:使用int关键字表示;
& @) o: ~$ L2 Y' I! g; e! Z 短整型:使用short int关键字表示,简写为short;
& G. m5 G, g5 T 长整型:使用long int关键字表示,简写为long,可以省略int不写。
1 X0 T1 a: T" ~1 k. ^. @整数分为正整数、负整数和零。有的时候需要表示整数的既可以是正的也可以是负的,有的时候只需要表示正的整数。就像我们表示人民币的时候用的都是正数或者零元,表示温度的时候既可以是负一度,也可以是正一度。
6 ]& x; g- P5 |" |, R4 w0 G为了满足上面的需求,C语言中的整型又可以分为有符号的和无符号的。有符号整型可以表示正整数、零和负整数,有符号使用signed符号表示。无符号整型只可以表示正整数和零,无符号使用unsigned符号表示。
1 L* O T0 f5 w因此,三种整型分别和有符号、无符号组合,因此整型总共有六种:- o9 z) ^. x' A. y! ]9 ?" d8 a u
有符号整型:简称整型,用signed int关键字表示,简写为int;
5 |- p9 R0 Y X: N: Z# D9 ] 有符号短整型:简称短整型,用signed short int关键字表示,简写为short int或者short; |$ l7 c( T5 O6 z! j; ~ [: ]
有符号长整型:简称长整型,用signed long int关键字表示,简写为long int或者long;/ ]; j: P! c' w4 P- l
无符号整型:用unsigned int关键字表示;
8 F" {, x2 W% W7 T. J" ?3 Q0 Y 无符号短整型:用unsigned short int关键字表示,简写为unsigend short;8 i0 X. p) ]9 I' `3 R0 V, `) E( p
无符号长整型:用unsigned long int关键字表示,简写为unsigned long。
/ x; {, N3 _( r) R% F4 |我们列表来表示每一种整型的范围和适合表示的数,如表2.2所示。
+ v- e4 Q% F0 ? . \4 H C# F; F) t, R5 z+ W0 w( j" F& b6 ?
从表2.2中可以看出长整型和整型是一样的,其实对于不同的系统,这个范围是不一样的,长整型会比整型的范围大,但是现在一般系统都是把它们定义为一样。4 N1 r6 j0 V, n& ^- }+ M
2.浮点型3 k3 C, c' @; X
浮点型在C语言中主要用来表示小数,分为单精度浮点类型和双精度浮点类型。它们的区别仅仅是表示的精度不一样,双精度的表示精度会更细点,并且表示的范围也会更大。单精度浮点类型使用float关键字表示;双精度浮点类型使用double float表示,简写为double。浮点型没有有符号和无符号的区别,都是有符号的。下面做表加以比较,如表2.3所示
) E* t, \ ?( b- V![]()
' c% V K* b7 {1 d* }8 K6 R: f5 N3.字符型
/ j- j1 q$ J3 P& H8 @字符型在C语言来表示各种字符,如英文字母、标点、数字之类。它只是一种符号表示,就像我们用‘A’,一撇、一拉、一横来表示大写英文字母A。像我们用‘1’,一个竖线来表示数字;用‘,’,类似于豆芽的东西表示语文中的逗号分隔符。5 {* G# Z& U7 U+ P6 D7 A0 T, ?
所以,从上面几种数据类型的表示,可以使用整数来表示3000元的工资,用浮点型来表示税率5%。
3 f" h3 S0 F' @7 B. q0 e |
|