首页 > 编程语言 >第3节 程序中数据的表示

第3节 程序中数据的表示

时间:2024-07-03 15:56:11浏览次数:16  
标签:表示 字符 常量 int double 程序 整数 整型 数据

第3节 程序中数据的表示

1.数据类型
1、数据类型
►利用计算机求解问题,首先要做的就是将数据引入到计算机中。
►在程序语言中是通过数据类型来描述不同的数据形式的,数据类型不同,求解问题的方法也会不同。

在这里插入图片描述
在这里插入图片描述

►1.整形
	►C++语言整型分为长整型(long int)、基本整型(int)和短整型(short int) 
	►long int可以简写为long、short int可以简写为short。 
	►short ≤ int ≤ long
    
    ►不同的数据类型规定了不同的机器数长度,决定了对应数据的数值范围,当一个整数超出此范围时计算机
    会将其转换为在数值范围内所允许的一个数,称为整型数据的溢出处理。 
    ►一般地,超过最大值的有符号整型数值会向上溢出变成负数,超过最小值的数据会向下溢出变成正数。

在这里插入图片描述

►2.浮点型
    ►C++语言浮点型又称实型,分为单精度(float)、双精度(double)和长双精度(long double)3种。
    ►在C++中规定float型在内存中占用4个字节,提供7位有效数字; 
    ►double型和long double型在内存中占用8个字节,提供16位有效数字。

    ►因为浮点型数据长度是有限的,所以浮点数存在计算误差。
    ►虽然浮点数精度越高计算结果越精确,但其处理时间也长。
    ►一个较大的浮点数与一个很小的浮点数做加法时,由于精度限制使得很小的浮点数被忽略了,从而使得这
    样的加法无意义。
    
【例3.1】
    1 #include <iostream>
    2 #include <iomanip>
    3 using namespace std;
    4 int main()
    5 {
    6 	float a=0.00000678f;
    7 	double b=0.00000678;
    8 	a = a + 111111.111f;
    9 	b = b + 111111.111;
   10 	cout<<setiosflags(ios::fixed)<<setprecision(16);
   11 	cout<<"a="<<a<<",b="<<b<<endl;
   12 	return 0;
   13 }
/*
运行结果:
a=111111.1093750000000000,b=111111.1110067800036632
*/
    
►2.字符型
    ►C++语言字符型分为有符号(signed char)和无符号(unsigned char)两种,其中signed书写时
    可以省略。
    ►字符型数据在内存中占用1个字节,采用二进制形式存储。
    
    ►字符型数据可以存储单字节字符,如ASCII码,此时在内存中的数据是字符的ASCII码值。例如字符'A'
    在内存中的存储形式为:0 1 0 0 0 0 0 1  'A'的ASCII码值
        
    ►在C++语言中字符型数据和整型数据之间可以通用。一个字符数据可以赋给整型变量,一个整型数据也
    可以赋给字符型变量,还可以对字符型数据进行算术运算。
    
【例3.2】
    1 #include <iostream>
    2 using namespace std;
    3 int main()
    4 {
    5 	int i, j;
    6 	char c1,c2;
    7 	c1='a'; //字符数据赋值给字符型
    8 	c2=98; //整数数据赋值给字符型
    9 	i='A'; //字符数据赋值给整型
    10 	j=66; //整数数据赋值给整型
    11 	cout<<"i="<<i<<",j="<<j<<",c1="<<c1<<",c2="<<c2<<endl;
    12 	cout<<"c1-32="<<c1-32<<endl; //字符型可以进行减法运算
    13 	return 0;
    14 }                 
/*
运行结果:
i=65 , j=66 , c1=a , c2=b
c1-32=33
*/
2.常量、变量
2、常量
►常量(constant)是指程序中其值不能被修改的数据。分为字面常量和符号常量。 
►从字面形式即可识别的常量称为字面常量(literal constant),例如64、3.1415926和‘A’等。
►每个字面常量都具有数据类型,由它的书写形式和值来决定。
    
►1. 整型常量
    ► (1)十进制整数。
     	以非零十进制数1~9组成的整数,例如13579,-680等。
    ► (2)八进制整数。
     	以0开头和八进制数0~7组成的整数,例如012,0177等。
    ► (3)十六进制整数。
     	以0x或0X开头和十六进制数0~9、A~F或a~f组成的整数(字母大小写任意),例
     	如0x1234,0xab,0xCF等。

►2. 浮点型常量
    ► (1)小数形式。由小数点、十进制整数和小数组成的浮点数。整数和小数可以省略其中之一,但不
    能省略小数点。     
    		如: .123、123. 、0.0等。
    ► (2)指数形式,又称科学记数法表示。以f E n或 f e n格式组成的浮点数,其中E或e表示以10为
    底的幂,f可以是整数或小数,n为指数且必须是整型。
     		如: 0.31415926e+1、314.15926E-2等。
    浮点型常量默认为double型。若在浮点数后面加一个字母f或F,则它是float型。
    
►3. 字符常量
    ► 以一对单引号(‘ ’)括起来的一个字符表示字符常量,
    ► 如:‘A’、‘0’、‘&’、’ab’ 错误!
    ► 字符常量表示的是一个字符,存储的是该字符的ASCII码值。例如‘A’表示英文字符A,数据值是65;
    ‘2’表示数字字符2,数据值是50。 
    ► 注意区别字符‘2’和整数2的写法。
    
►4. 用转义字符表示字符常量
    ► 以反斜线(\)开头,后跟一个或几个字符序列表示的字符称为转义字符,如\n表示换行符。
    ► 采用转义字符可以表示ASCII字符集中不可打印或不方便输入的控制字符和其他特定功能的字符。

在这里插入图片描述在这里插入图片描述###### 3、变量

►\ooo和\xhh称为通用转义字符,其中ooo表示可以用1至3位八进制数作为码值表示一个ASCII字符,hh表示可
以用1至2位十六进制数作为码值表示ASCII字符。
    
►如:“\1234” “\123和4”,"\128" “\12和8”,"\19" “\1和9”, ► \9 错误! ,\0xFE 错误!
    
►由于字符型数据在内存中只占用1个字节,即使按无符号处理其最大值也仅是255(八进制为377),因此ooo的
数值范围为0~377(八进制),其他值使得字符型数据溢出。同理,hh的数值范围为0~FF。

【例3.3】转义字符应用举例
     1 #include <iostream>
     2 using namespace std;
     3 int main()
     4 { 	cout<<"ab c\t de\rf\tg"<<endl;
     5 		cout<<"h\ti\b\bj k\n123\'\"\\\x41\102CDE"<<endl;
     6 		return 0;
     7 }
/*
运行结果:
f└┘└┘└┘└┘└┘└┘└┘ g  d e
h└┘└┘└┘└┘└┘└┘ j └┘ k
123'"\ABCDE
*/

►5. 字符串常量
    ► 以一对双引号(“ ”)括起来的零个或多个字符组成的字符序列称为字符串常量,ASCII字符集或
    多字节字符集(如汉字、日韩文字等)都可以组成字符串。
    ► 双引号是字符串常量的边界符,不是字符串的一部分,如果在字符串中要出现双引号应使用转义
    字符(\“)。
         "" //空字符串(0个字符)
        " " //包含一个空格的字符串
        "Hello,World\n" //包含Hello,World 和 换行符的字符串
        "xyz\101\x42" //包含x y z AB的字符串
        "\\\'\"\n" //包含反斜线(\\) 单引号(\')和双引号(\")的字符串

►6. 符号常量
    ► 符号常量定义形式为:
    	#define 标识符 常量
    ► 其中#define是宏定义命令,作用是将标识符定义为常量值,在程序中所有出现该标识符的地方均用
    常量替换。
    ► 例:#define PRICE 30

【例3.4】符号常量应用举例
     1 #include <iostream>
     2 using namespace std;
     3 #define PI 3.1415926 //3.1415926即为圆周率π
     4 int main()
     5 {
     6 		double r=5.0;
     7 		cout<<"L="<<2*PI*r<<",S="<<PI*r*r<<endl; //PI为3.1415926
     8 		return 0;
     9 }
    
    ►在程序运行期间其值可以改变的量称为变量(variable)。
    ►变量实际上就是计算机中的一个内存单元。
    ►C++语言规定变量应该有一个名字,用变量名代表内存单元。
    ►C++语言通过定义变量时指定其数据类型来确定内存单元的大小,不同的数据类型有不同的数据形式和
    存储形式,需要一定数量(单位为字节)的内存单元。

►1. 变量的使用
    ►C++语言变量必须“先定义,后使用”,定义变量的一般形式是:
        变量类型 变量名列表;
        double a , b , c , d; //定义实型变量
        int i , j , k; //一次定义多个int型变量
        int a, char c; //错误
    ►变量定义后,变量值是未确定的(除了静态存储情形),即变量值是随机的。直接使用此时的变量参与
    运算,运算结果也是随机的。
        
    ►在变量定义的同时给变量一个初值,称为变量初始化(initialized),一般形式为:
        变量类型 变量名=初值;
        变量类型 变量名1=初值1, 变量名2=初值2, ... ;
        double pi=3.1415926; //正确,初始化pi为3.1415926
        int x , y , k=10; //正确,可以只对部分变量初始化
        int a=1 , b=1 , c=1; //正确,可以同时初始化多个变量
        int d=a , e=a+b; //错误,初值不能是变量或表达式
        int m=n=z=5; //错误,不能对变量连续初始化
        
	►定义变量后,可以通过赋值语句为变量赋予新的数据,一般形式为:
        变量名=表达式; 
	►赋值后,无论变量原来的值是多少,都将被新值替代。
        int k; k=5; //给k赋值5
        ...... //k保持不变
        k=10; //重新给k赋值10,k已改变不再是5 

►2. 变量的const限定
    ►在变量定义前加上const修饰,这样的变量称为只读变量(read-only variable)或常
    变量(constant variable) 
    ►它在程序运行期间的值不能被修改。其定义的一般形式为
		const 变量类型 变量名列表;
		int x;
		const int i=6 , j=10; x=i+1; //正确,可以使用const变量
		i=10; //错误,不可以给const变量赋值
		const int i=6; //正确
		const int m; //错误
    ►const限定过的变量在编译过程中若发现有修改的操作时会报编译错误,从而“阻止”对变量的修改。
    ►使用const限定强制实现对象最低访问权限,是现代软件开发的设计原则之一。

【例3.5】
     1 #include <iostream> //标准输入输出函数库
     2 #include <cmath> //数学函数库
     3 using namespace std; 
     4 double root(const double x, const double y) //root函数求x-y的平方根
     5 { 	if (x>=y) return sqrt(x-y); //只有在x大于等于y时计算x-y的平方根
     6 		else return 0; //否则返回0
     7 }
     8 int main() //主函数
     9 { 	double a, b; //定义两个浮点型变量
    10 		cin>>a>>b; //输入两个数
    11 		cout<<root(a,b)<<endl; //输出a-b的平方根
    12 		return 0; //主函数正常结束返回0
    13 }

标签:表示,字符,常量,int,double,程序,整数,整型,数据
From: https://blog.csdn.net/m0_69088645/article/details/140132273

相关文章

  • 【数据结构】堆栈
    目录一、堆栈的基本概念1.1堆栈定义1.2堆栈操作1.3堆栈应用二、顺序栈2.1定义2.2操作2.3C语言实现三、共享栈3.1定义3.2操作3.3C语言实现四、链式栈4.1定义4.2操作4.3C语言实现五、总结        堆栈(Stack)重要的数据结构,它们在计算机科......
  • ; 运行容量为4TB卷标是SD_4TB的闪迪E81移动固态硬盘中的程序 2024年7月3日
    ;运行容量为4TB卷标是SD_4TB的闪迪E81移动固态硬盘中的程序2024年7月3日;闪迪移动固态硬盘盘符可能会变化,此脚本会找到并运行所需的程序,实现智能化快捷方式 ;运行容量为4TB卷标是SD_4TB的闪迪E81移动固态硬盘中的程序;闪迪移动固态硬盘盘符可能会变化,此脚本会找到并......
  • 这份Excel+Python飞速搞定数据分析手册,简直可以让Excel飞起来
    微软在UserVoice上运营着⼀个反馈论坛,每个⼈都可以在这⾥提交新点⼦供他⼈投票。票数最⾼的功能请求是“将Python作为Excel的⼀门脚本语⾔”,其得票数差不多是第⼆名的两倍。尽管⾃2015年这个点⼦发布以来并没有什么实质性进展,但在2020年年末,Python之⽗GuidovanRoss......
  • Pandas数据处理
    Pandas数据处理1.操作行名和列名(1)设置某一列为行名df.set_index(列名,drop=布尔值)#drop表示是否删除这一列importpandasaspddata=[["0001",'苹果',5,'山东'],["0002",'香蕉',3,'海南'],["0003",'橙子......
  • Conda 安装gdal地理数据包
    安装特定版本的GDAL(例如3.9.1版本),可以使用Conda命令并指定版本号。通常情况下,需要确保指定了正确的Conda频道,以便找到所需版本的软件包。在Conda中安装特定版本的GDAL的步骤如下:查找可用的版本:首先,可以使用condasearch命令来查找GDAL的可用版本,以确定是否有......
  • Winform数据绑定基类
    usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Linq;usingSystem.Runtime.CompilerServices;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;usingSystem.Threading;publicabstractclassB......
  • 金融集团大数据分析平台总体架构方案
    。。。。。。关注公众号:野老杂谈,回复“金融集团大数据分析平台总体架构方案”获取80多页原文PPT......
  • STM32远程烧录程序
    目录简介该篇将会从零基础开始像读者讲解怎么使用远程的方法来烧录STM32程序。我这里用的是ESP8266和STM32F407ZGT6,当然,使用其他32的芯片也是可以的,核心都是一样的。不同的程序下载方式目前,单片机的程序烧录方式可以分为三种:ICP,ISP,IAP。ICP:In-CircuitProgramming在电......
  • IBM服务器SQL/ Oracle数据库修复
    一、故障诊断:1.使用IBM服务器管理工具(如IBMStorageManager)连接到服务器,检查当前存储状态和数据库状态。2.查看错误日志和系统日志,确定数据库损坏的具体原因,如硬盘故障、RAID阵列崩溃、文件系统损坏等。风险评估:1.评估数据库损坏的严重程度和恢复的可能性。2.确定是否有可用......
  • 浪潮服务器LSI英信阵列Offline数据恢复
    一、确认故障现象:登录服务器管理界面,检查LSI英信MegaRAID阵列的状态,确认是否显示为Offline或Failed。记录所有相关的错误信息和日志,以便后续分析。评估恢复难度:1.根据错误信息和日志初步判断恢复难度,包括是否涉及硬件损坏、RAID配置丢失或数据损坏等。2.确认是否有可用的备份......