C语言程序设计(第4版)谭浩强著—学习笔记chapter two 数据的存储与运算

2.1数据在计算机中如何存储

  1. 程序的作用是对数据进行操作。计算机的工作是基于二进制原理,计算机的内部信息也是由二进制来表示。二进制的特点是逢二进一。
  2. 计算机的存储器由半导体集成电路构成,它包括几亿个小的脉冲电路单元,也就是二极管元件。每一个二极管元件如同一个开关,有两种稳定的工作状态导通和截止,就是电脉冲的有和无,分别用1和0表示。当用户向计算机输入数据时,计算机先把数据转换为二进制形式,根据其每一位是0或1使相应的电子元件设置为导通或截止状态。又叫比特bite,每一个二极管元件就叫一个二进制位,是存储信息的最小单元。
  3. 字节又叫拜特byte,一般八个二进制位为一组是一个字节 ,这是最常用的存储单位。平时所说的 占内存125KB是指12.5万字节,内存为256M是256兆字节就是一百万字节。硬盘容量为40G就是指40吉字节就是400亿字节。其实实际上1K=1024B,方便起见常说1K=1000B

关于整型数据的运算

  1. 一字节共有八个二进制位,左边第一位也就是最高位用于表示符号,最高位是0表示是正数。在计算机存储器中整数以补码形式存放,正数的补码与源码也就是二进制形式相同,负数用补码表示,负数先求补码再存放在储存单元中。
  2. 不同类型的数据在内存中的存储方式和占用空间字节数是不同的,一般以4字节byte,也就是32比特二进制位bite,最大值是31位1,即2的31次方-1,约为21亿,用于存放C语言的一个整数。
//例2.1 鸡兔同笼 :头16脚40求多少只鸡和兔。 
#include <stdio.h> 
int main(){
   
	int rabbit,hen,head,foot;//定义四个整型变量:变量类型 变量名
	head=16;//常量是指程序运行过程中其值不能改变的量 ,16是整型常量 
	foot=40;
	rabbit=(foot-2*head)/2;
	hen=16-rabbit;
	
	printf("hen=%d,rabbit=%d\n",hen,rabbit);//printf("输出格式控制”) --hen=12,rabbit=4 
	return 0;
}
  1. 整型变量类型有int ,shortint, long int 。用unsigned修饰变量类型指定为无符号的整型变量 ,这样不用把存储单元中的第一位用来代表数值符号 ,这样存储数值的范围扩大了一倍。默认是有符号的整型变量,也可以用signed 修饰。类型相当于模板,是一种抽象的规定,不占储存空间。
  2. 变量名是代表一个储存单元的符号地址。当程序中有赋值语句时,编译系统根据变量名找到它对应的存储单元的地址,从而把变量值存放在该存储单元中。如果再次对该变量执行其他赋值语句,则新的变量值就会替代原值,这体现了变量的值是可以改变的。变量是根据类型所规定的的原则建立的实体,占储存空间。
  3. 变量必须先定义后使用,变量名一般最大长度为32个字符。标识符是用来标识一个对象如变量,符号常量,函数名,数组,文件,类型等。C语言规定标识符的第一个字符必须是大小写字母或者下划线_,标识符由数字和大小写字母和下划线构成,不能是关键字。

关于实型数据的运算

  1. 实数在计算机中被叫做浮点数,有两种表示形式:十进制小数形式,指数形式。十进制小数形式0.123,0.0,123.123都是,“3,0,-80”是整型常量不是实型数据。指数形式如123e-3,2.1E0都是,用E或e表示以10为底的指数,且字母前面必须有数字,字母后必须是整数。“E123,123e1.1,2e"都不合法。
  2. 一个实数可以有多种指数形式表达,但是只有一种标准化指数形式。标准化指数形式是指数值部分是一个小数,小数点前的数字是0,小数点后的第一位数字不能是0, 如0.123e2 。不论实数以什么形式出现都以标准化指数形式存储。实际上计算机用二进制形式表示数值,指数部分以2为底。在计算机中一般以四个字节存储一个实数,3字节存放数值部分和数符,一字节存放指数部分和指数符号。
//例2.2分期付款计算:贷款额324500元,每月还3245元,月利率0.8,求需要几个月才能还清和总的还款数。 
#include <stdio.h>
#include <math.h> //调用系统提供的库函数,头文件命令 
int main(){
   

	int count,payment;//定义整型变量 
	double profit,month;//定义实型变量 ,由于log10函数的值是double双精度型用相同的数据类型
	
	count=324500;
	payment=3245;
	profit=0.008; 
	month=(log10(payment)-log10(payment-count*profit))/log10(1+profit);    //通过数学公式求月份的值
	
	printf("month=%f\n",month);
	printf("total=%f\n"
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值