码迷,mamicode.com
首页 > 其他好文 > 详细

ASCII初理解

时间:2016-04-10 22:39:26      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

    ASCII:美国标准信息交换码,是现今最通用的单字节编码系统。这里先简单的理解一下编码是什么意思。编码是信息从一种形式或格式幻化为另一种形式的过程。在这个过程中需要有一种转换约定。计算机中所有的数据再存储和运行的时候都是所有的信息都使用二进制数表示的(0,1),而具体是哪些二进制数据表示哪些符号,每个人都可以约定自己的一套,如果别人想读懂自己的数据,就需要知道自己的编码规则。而ASCII编码,就是一个标准化的编码规格,同一的规定了常用的符号要用哪些二进制来表示。就相当于,普通话和方言的关系。同一个意思可以用多种语言来表达,比如中文和英文。编码的过程就是一个翻译的过程,如中文翻译成英文,但是翻译也需要有翻译规则,如‘新‘这个字在英文中是‘new’。而ASCII码呢,就是用数字的形式来表示了文本。

  再说一下单字节。简单理解,单字节就是拉丁字符,双字节就是中国、日本、韩国的象形文字。

 下面通过实例,看看ASCII码是怎么来把文字翻译成计算机能懂的语言。

(1) ASCII码‘A‘ -- 其内存存储字节2进制表示为"01000001" --- 其16进制值为0x41 --- 其10进制值为65(这里的值实际上是‘A‘在ASCII码表中编号); 

验证过程: 
char c = ‘A‘; 
printf("%c\n", c);/* A */ 
printf("%x\n", c);/* 41 */ 
printf("%d\n", c);/* 65 */ 

(2) ASCII码‘6‘ -- 其内存存储字节2进制表示为"00110110" --- 其16进制值为0x36 --- 其10进制值为54(这里的值实际上是‘6‘在ASCII码表中的编号); 

验证过程: 
char c = ‘6‘; 
printf("%c\n", c);/* 6 */ 
printf("%x\n", c);/* 36 */ 
printf("%d\n", c);/* 54 */ 

ASCII码通讯 
利用ASCII码作为通讯方式到底是一种什么样的通讯方式呢?(FTP协议中有两种通讯方式,其中一种是ASCII码方式,即文本方式)这里也举例说明:比如我们要传送数值123, 123数值用16进制表示为0x7b,以二进制表示为01111011,那么以二进制方式通讯,01111011就是我们真实传送的数据,但是如果以ASCII码方式通讯,则完全不同了,应该是将123每位上的数字转化为其相应的ASCII码,然后传送。这里‘1‘、‘2‘和‘3‘对应的ASCII码用16进制表示分别为0x31、0x32和0x33。这样组合起来后要传送的数据应为"001100010011001000110011"。 

一个字符串在内存中就是按照逐个字符的ASCII码连续存放的,我们在传送字符串时一般无需做特殊转换。

ASCII初理解

标签:

原文地址:http://www.cnblogs.com/gangling/p/5376315.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!