数据的表示

目录

一、计算机数据表示

 

二、数据类型

(一)变量与常量数据

 

(二)基本数据类型

1.位、字节和字

2.逻辑类型(_Bool类型)

3.整数与浮点数的存储方案:

4.整数类型

5.浮点类型

6.char类型


一、计算机数据表示

送入计算机的数字、字母、符号等信息必须转换成0、1组合的数据形式才能被计算机识别。

能够进行算术运算得到明确数值概念的信息成为计算机数值数据,其余的信息为非数值数据。

 

二、数据类型

 

(一)变量与常量数据

有些数据类型在程序使用之前已经预先设定好了,在整个程序的运行过程中没有变量,这些称为常量。其他数据类型在程序运行期间可能会改变或被赋值,这些称为变量。

 

(二)基本数据类型

1.位、字节和字

位、字节和字是描述计算机数据单元或存储单元的术语,这里主要指存储单元。

最小的存储单元是位(bit),可以存储0或1.位是计算机内存的基本构建块。

字节(byte)是常用的计算机存储单位。1byte=8bit

字(word)是设计计算机时给定的自然存储单位。计算机的字长越大,其数据转移越快,允许的内存访问也更多。

 

 

2.逻辑类型(_Bool类型)

C99标准添加了_Bool类型,用于表示布尔值。

只有两个量true和false。表示逻辑真值和逻辑假值。

因为C语言用值1表示true,值0表示false,所以_Bool类型实际上也是一种整数类型。但原则上它仅占用1位存储空间,因为对0和1而言,1位的存储空间足够了。

 

3.整数与浮点数的存储方案:

计算机以二进制数字存储整数;

计算机把浮点数分成小数部分和指数部分来表示,而且分开存储这两部分。(计算机在内部使用二进制和2的幂进行存储,而不是10的幂。)

整数和浮点数的实际区别

  1. 整数没有小数部分,浮点数有小数部分;
  2. 浮点数可以表示的范围比整数大
  3. 对于一些算术运算,浮点数损失的精度更多
  4. 浮点数通常只是实际值的近似值
  5. 以前,浮点数的运算比整数运算慢,现在许多CPU都包含浮点处理器,缩小了速度上的差距。

4.整数类型

int类型:

int类型是有符号整型,即int类型的值必须是整数,可以是正整数、负整数或零。

声明int变量

eg:int erns;

int hogs,cows,goats;

(为int大小的变量赋予名称并分配内存空间)

变量如何获取值?

  1. 赋值

         cows=112;

  1. 通过函数(scanf())获得值
  2. 初始化变量

初始化变量就是为变量赋一个初始值。

eg:int hogs=21;

声明为变量创建和标记存储空间,并为其指定初始值。

打印int值

可以使用printf()函数打印int类型的值。

%d称为转换说明,它指定了printf()应使用什么格式来显示一个值。要确保转换说明的数量与待打印值得数量相同。

0x或0X前缀表示十六进制值,0前缀表示八进制。

以十进制显示数字,使用%d;以八进制显示数字,使用%o;以十六进制显示数字,使用%x。另外,要显示各进制数的前缀0/0x和0X,必须分别使用%#o、%#x、%#X。

其他整数类型:

short int类型(或者简写为short)占用的存储空间可能比int类型少,常用于较小数值的场合以节省空间。与int类似,short是有符号类型。

long int 或long占用的存储空间可能比int多,适用于较大数值的场合。与int类似,long是有符号类型。

long long int 或 long long(C99标准加入)占用的存储空间可能比long多,适用于更大数值的场合。该类型至少占64位。与int类似,long long 是有符号类型。

unsigned int 或unsigned只用于非负值的场合。这种类型与有符号类型表示的范围不同。

5.浮点类型

包括float、double和long double。

float类型必须至少能表示6位有效数字,且取值范围至少是10-37~1037;

double(双精度)和float的最小取值范围相同,但至少能表示10位有效数字。一般情况下,double占用64位而不是32位。一些系统将多出的32位全部用来表示非指数部分,这不仅增加了有效数字的位数(即提高了精度),而且还减少了舍入误差。另外一些系统把其中的一些位分配给指数部分,以容纳更大的指数,从而增加了可表示数的范围。无论是哪种方法,double类型的值至少有13位有效数字,超过了标准的最低位数的规定。

long double类型以满足比double类型更高的精度要求。不过,C只保证long double类型至少与double类型的精度相同。

声明浮点型变量:

float noah,Jonah;

double trouble;

long double gnp;

没有后缀的浮点型常量是double类型。

打印浮点值:

printf()函数使用%f转换说明打印十进制记数法的float和double类型浮点数,用%e打印指数记数法的浮点数。打印long double类型要使用%Lf、%Le或%La转换说明。

6.char类型

char类型用于存储字符,但是从技术层面上来看,char是整数类型,因为char类型实际存储的是整数而不是字符,是用特定的整数来 表示特定的字符。

声明char类型变量:

char response;

char itable,latan;

字符常量和初始化

char grade =‘A’;

单引号只适用于字符、数字和标点符号。

打印字符:

printf()函数用%c指明待打印的字符。一个字符变量实际上被储存为1字节的整数值。%c转换说明告诉printf()打印该整数值对应的字符。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值