符号与ASCII码转换
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一符号与ASCII码的转换
一、实验目的:
1、熟悉英文字母和常用符号的基本编码理论。
2、了解数字符号和数字ASCII码值的区别。
3、使用高级语言实现符号与ASCII码的转换。
二、实验要求:
1、界面友好、简洁
2、变量和函数要有注释
3、实验报告中要有程序流程图
三、实验环境:
1、硬件环境:主流配置计算机
2、操作系统:Windows xp
(替换成实际应用系统)
3、编译平台:Visual C++ 6.0
(替换成实际应用平台)
(可选语言包括C、C++、Java等等)
四、实验内容:
1、介绍一下ASCII编码(查找整理资料)
–编写ASCII码转换程序(用流程图表示)
2、输入符号,打印出对应的ASCII码表(十进制、16进制、二进制)
3、输入ASCII码值(十进制、或16进制、或二进制),
打印出对应的符号。
4、创建一个文件(内容为一段英文),读入文件并将
其中的符号转换为ASCII码,写入另一个文件。
–调试并通过该程序(抓图示例,实验体会)
五、实验报告内容:
1、实验名称
2、实验目的
3、实验要求
4、实验环境
5、实验内容(算法描述、算法流程)
6、实验体会
六、实验报告正文:
1、ASCII编码的介绍
ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语,而其扩展版本EASCII则可以部分支持其他西欧语言,并等同于国际标准ISO/IEC 646。由于万维网使得ASCII广为通用,直到2007年12月,逐渐被Unicode取代。
ASCII码使用指定的7位或8位二进制数组合来表示128或256种可能的字符。标准ASCII码也叫基础ASCII码,使用7位二进制数来表示所有的大写和小写字母,数字0 到9、标点符号,以及在美式英语中使用的特殊控制字符。其中:
0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL (响铃)等;通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;ASCII值为8、9、10 和13 分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
同时还要注意,在标准ASCII中,其最高位(b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。
后128个称为扩展ASCII码,目前许多基于x86的系统都支持使用扩展(或“高”)ASCII。扩展ASCII 码允许将每个字符的第8 位用于确定附加的128 个特殊符号字符、外来语字母和图形符号。
2、编写ASCII码转换程序(用流程图表示)
(1)、功能选择的提示
(2)、将符号转换成ASCII码
例如:“*”会显示十进制、十六进制、二进制的ASCII码。
ASCII码与进制之间的转换都是通过十进制的,再由十进制转换为二
进制、十六进制。
(3)、将符号转换成ASCII码
会跳出功能选择:十进制、十六进制、二进制来转换
例如:“56”二进制的ASCII码
例如:“10”十进制的ASCII码
例如:“77”十六进制的ASCII码
(4)、创建一个文件(内容为一段英文),读入文件并将其中的符号转换为ASCII码,写入另一个文件。
“summer”写入,先转换为十进制的ASCII码。
3、源代码(借鉴)
#include
#include
void trans();
void trans_dtob(int y);
void trans_dtoh(int y);
void convert();
void convert_btoA();
void convert_dtoA();
void convert_htoA();
void wjwrite();
int main()
{
int x;
while(1)
{
cout<<"请输入您想选择的功能(选择相应代码,选择4结束):"< cout<<"1.将符号转换成ASCII码"< cout<<"2.将ASCII码转换成符号"< cout<<"3.将文件转换成ASCII码存在另外一个文件中"< cin>>x; switch(x) //进行功能选择的提示 { case 1:trans();break; case 2:convert();break; case 3:wjwrite();break; case 4:return 0; } } } void wjwrite() //将文件中的字母转换成ASCII码并存在另一个文件中 { ifstream in; ofstream out; out.open("D:\\file1.txt",ios::out); //以写的方式打开文件file1.txt char a[100],y; int x; cout<<"创建文件(请输入英文字母,以0结束输入):"< while(1) //通过循环可进行多次的功能选取 { cin>>y; if(y=='0')