这几天学习了C语言的数据存储和运算。今天来记录一下。
一 ,数据的存储
1.数据在计算机中是以二进制形式存储的。
计算机内部的信息都是用二进制来表示的,计算机的存储器是由半导体集成电路构成的。
2.二进制和十进制之间的换算。
二进制转十进制:
方法:要从右到左用二进制的每个数去乘以2的相应次方,小数点后则是从左往右。
例如:二进制数1101.01转化成十进制
1101.01(二进制)=120+0*21+122+1*23 +0*2-1+1*2-2=1+0+4+8+0+0.25=13.25(十进制)
十进制转二进制:
把给定的十进制数29除以2,商为14,所得的余数1是二进制数的最低位的数码,再将14除以2,商为7,余数为0。再将7除以2,商为3,余数为1,再将3除以2,商为1,余数为1,再将1除以2,商为0,余数为1是二进制数的最高位的数码。具体过程如下:
其结果为:11101
3.位,字节和地址。
位:
又称为比特(bit)。每一个二极管元件称为一个二进制位,是存储信息最小的单位。它的值是1或0。
字节:
又称为拜特(byte)。
4.不同数据类型的存储方式。
整数是存储方式。
一个十进制的整数,先转换为二进制的形式,如整数10,以二进制形式表示是1010直接把它存放在存储单元中。用一字节存储,存储情况为00001010。一字节共有8个二进制位,因为1010没有满足8位所以在1010前面补4个0。
实数的存储方式。
具体请参考:https://blog.youkuaiyun.com/qq_35057840/article/details/52430651
字符的存储方式。
字符型数据在内存中储存的是它的ASCII码值,它是一个字节,所有数据类型在内存中都是以0和1代码二进制储存的,这个原则不会变。
在C语言中,char型数据是将一个字符常量放到一个字符变量中,并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中。
二,数据的运算
1.整型数据运算举例和分析。
鸡兔同笼。在一个笼子里同时养了一些兔子和鸡,你想了解有多少只兔子和多少只鸡,主人和你说:我只告诉你鸡和兔子的总头数是16,总脚数是40,你能不能自己计算有多少只兔子和多少只鸡?
题目就不分析了直接上代码。
程序分析
1.第4行 “int h,f,x,y;“的作用是定义4个整形变量,int是类型名,h,f,x,y是变量名。定义变量得到一般形式是:类型名 变量名;
2.第7,8行是根据题目分析得到公式进行计算,分别得到x和y的值。
3.第9行是输出x和y的值,也就是鸡和兔子的个数。
注意:
press any key to continue 并不是程序输出的一部分,它是编译系统安排的,在每一次输出完成运行结果以后输出的一行信息,作用是告诉用户:按下任何一个键就可以进行工作。
2.整型常量和整型变量
在计算机语言中数据有两种基本表现形式:常量和变量。
常量:
是指在程序运行过程中其值不能改变的量。
变量:
是指在程序运行过程中其值可以改变的量。
c语言变量名规则是:
1、变量名以英文字母开头;2、变量名中的字母是区分大小写的;3、变量名不能是关键字;4、变量名中不能包含空格、标点符号和类型说明符。
3.实型数据的运算。
张先生为购房向银行贷款,贷款额为324500元,每月准备还3245元,月利率为0.8%,求需要多少个月(用m表示)才能还清。
代码如下:
需要注意的是计算实型数据的时候要把第一个红框里的代码加上!
实数在计算机语言中常被称为浮点数。
实型变量分为3类:单精度实型变量(float型),双精度实型类型(double型)和长双精度实型类型(long double型)
由于实型类型在内存中的存储单元由有限字节组成的,因此能提供的有效数字总是有限的,在有限位以外的数字将被舍弃,由此可能会产生一些误差。