首页 > 知识与问答 > 符号与ASCII码的转换

符号与ASCII码的转换

来源:互联网转载 时间:2025-04-18 11:54:55 浏览量:

符号与ASCII码的转换本文简介:实验一符号与ASCII码的转换一、实验目的:1、熟悉英文字母和常用符号的基本编码理论。2、了解数字符号和数字ASCII码值的区别。3、使用高级语言实现符号与ASCII码的转换。二、实验要求:1、界面友好、简洁2、变量和函数要有注释3、实验报告中要有程序流程图三、实验环境:1、硬件环境:主流配置计算机

符号与ASCII码的转换本文内容:

实验一

符号与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、实验体会

6、

实验报告正文:

1、

ASCII编码的介绍

ASCII(American

Standard

Code

for

Ination

Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语,而其扩展版本EASCII则可以部分支持其他西欧语言,并等同于国际标准ISO/IEC

***6。由于万维网使得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)

{

coutx;

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;

couty;

if(y==

0

)

break;

outx;

y=(int)x;

coutx;

switch(x)//进行进制选择,确定对应的进制子函数

{

case

1:convert_btoA();break;

case

2:convert_dtoA();break;

case

3:convert_htoA();break;

}

}

void

convert_btoA()//将二进制的ASCII码转换成符号

{

char

a[10],y;

couta;//将二进制数当做字符串进行输入

inti,t;

long

sum=0;

for(i=0;a[i];i++)//计算出二进制数的每一位上的数的值

{

t=a[i]-

0

;//与字符

0

进行作减,得到每位上的二进制数值

sum=sum*2+t;

//将二进制转换成十进制

}

y=(char)sum;//将ASCII码十进制强制转换成符号

coutx;

y=(char)x;

couta;//将十六进制数当做字符串进行输入

inti,t;

long

sum=0;

for(i=0;a[i];i++)//计算出十六进制数的每一位上的数的值

{

if(a[i]<=

9

)//对小于

9

的字符,与

0

进行作减,求出该位置上数值的大小

t=a[i]-

0

;

else

t=a[i]-

A

+10;//对大于

9

的字符,与

A

进行比较,并求出该位置上数值的大小

sum=sum*16+t;//转换成十进制

}

y=(char)sum;

cout<

}

4、

实验体会

这次的实验丰富了我对ASCII码的理解,但着实的知道了自己的编程能力实在是太差了。ASCII码在编码、计算机世界中真的很方便,也知道了十进制是转换的中介,ASCII码转换成为其他进制时,要先转换为十进制再转换为其他进制。人在键盘上敲入的字符(数字、字母、特殊符号等)转换成机器能够识别的二进制数,并且每个字符唯一确定一个ASCII码,形象地说,它就是人跟计算机交流时使用的键盘语言通过“翻译”转换成的计算机能够识别的语言。

© 转乾企业管理-攻考网 版权所有 | 黔ICP备2023009682号

免责声明:本站内容仅用于学习参考,信息和图片素材来源于互联网,如内容侵权与违规,请联系我们进行删除,我们将在三个工作日内处理。联系邮箱:303555158#QQ.COM (把#换成@)