0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ascii转换16进制原理

PoisonApple 来源:网络整理 2018-01-30 11:20 次阅读

ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字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 个特殊符号字符、外来语字母和图形符号。

ASCII是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。

在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)、以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了ASCII编码,统一规定了上述常用符号用哪些二进制数来表示。

美国标准信息交换代码是由美国国家标准学会(American National Standard Institute , ANSI )制定的,标准的单字节字符编码方案,用于基于文本的数据。起始于50年代后期,在1967年定案。它最初是美国国家标准,供不同计算机在相互通信时用作共同遵守的西文字符编码标准,它已被国际标准化组织(International Organization for Standardization, ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母。

ASCII与16进制互转c例程

//函数名:AscToHex()

//功能描述:把ASCII转换为16进制

unsigned char AscToHex(unsigned char hex)

{

if((hex 》= 0) &&(hex 《= 9))

hex += 0x30;

else if((hex 》= 10) &&(hex 《= 15)) //A-F

hex += 0x41;//0x37

else

hex = 0xff;

return hex;

}

//函数名:HexToAsc()

//功能描述:把16进制转换为ASCII

unsigned char HexToAsc(unsigned char aChar)

{

if((aChar》=0x30) &&(aChar《=0x39))

aChar -= 0x30;

else if((aChar》=0x41) && (aChar《=0x46))//大写字母

aChar -= 0x41; //0x37

else if((aChar》=0x61) && (aChar《=0x66))//小写字母

aChar -= 0x61; //0x57

else

aChar = 0xff;

return aChar;

}

十六进制与ASCII码的互转(C语言

//函 数 名:CharToHex()

//功能描述:把ASCII字符转换为16进制

//函数说明:

//调用函数:

//全局变量:

//输 入:ASCII字符

//返 回:16进制

[cpp] view plain copy/**function: CharToHex()

*** ACSII change to 16 hex

*** input:ACSII

***Return :Hex

**/

unsigned char CharToHex(unsigned char bHex)

{

if((bHex》=0)&&(bHex《=9))

{

bHex += 0x30;

}

else if((bHex》=10)&&(bHex《=15))//Capital

{

bHex += 0x37;

}

else

{

bHex = 0xff;

}

return bHex;

}

//函 数 名:HexToChar()

//功能描述:把16进制转换为ASCII字符

//函数说明: //调用函数:

//全局变量:

//输 入:16进制

//返 回:ASCII字符

[cpp] view plain copyunsigned char HexToChar(unsigned char bChar)

{

if((bChar》=0x30)&&(bChar《=0x39))

{

bChar -= 0x30;

}

else if((bChar》=0x41)&&(bChar《=0x46)) // Capital

{

bChar -= 0x37;

}

else if((bChar》=0x61)&&(bChar《=0x66)) //littlecase

{

bChar -= 0x57;

}

else

{

bChar = 0xff;

}

return bChar;

}

scii码转十六进制原理

每一个ascii码对应了一个固定的十六进制数,这个值是不变的,在ascii码表上是可以查的到得。

下面是一张ASCII和16进制的对应表:

ascii转换16进制原理

ascii转换16进制原理

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7527

    浏览量

    128152
  • ASCII
    +关注

    关注

    4

    文章

    169

    浏览量

    34521
  • 16进制
    +关注

    关注

    1

    文章

    13

    浏览量

    8707
收藏 人收藏

    评论

    相关推荐

    汉字转换程序,字符串转换16进制软件,ascii码查询工具

    汉字转换程序,字符串转换16进制软件,ascii码查询工具,这是编程人员必用的小工具了。。[/hide]
    发表于 06-30 09:58

    LabVIEW中如何实现十六进制ASCII之间的转换

    实现将这个十六进制表示转换为其对应的ASCII表示?如果需要以十六进制等价的形式向仪器发送命令,该如何实现?解答: 将十六进制
    发表于 10-20 11:20

    labview教程:十六进制ASCII之间的相互转换

    表示转换为其对应的ASCII表示实现通信。将十六进制转换ASCII:. 为了将一个十六进制的字
    发表于 01-05 11:21

    ASCII转换成十六进制字符串的程序

    16进制转换ASCII已经做出来了
    发表于 01-10 23:27

    分享ascii16进制字符串之间的转换

    外加一个ascii转换成等值的十六进制字符串文件,这几天一直在摸索这个,网上的好多都不满要求,现在做好了跟大家分享一下。要注意字符串是普通显示还是十六进制显示。
    发表于 01-12 22:14

    ASCII数字与字符串转换问题。

    本帖最后由 5612355653 于 2016-10-14 09:01 编辑 大神们好:请问:1、如何将10进制数字1234转换16进制AS
    发表于 10-14 08:36

    16进制多行字符转化为ASCII

    读txt文件将16进制字符转化为ASCII,写入txt文件,可是只能转换6个字符,这个问题怎么解决?
    发表于 12-21 14:08

    请问怎么将ASCII转换16进制数?

    遇到麻烦了:用51单片机想把红外遥控器的键值显示在1602上,可是显示的是ASCII码,不能如实反应出遥控器解码出来的16进制数。如何在1602上显示出红外遥控器的16
    发表于 01-14 04:24

    LABVIEW串口收到ASCII码,如何转成十进制显示

    LABVIEW串口收到ASCII码,如何转成十进制显示。注:LABVIEW串口收到字符串,正常显示为ASCII码,显示控件选择16进制可以显
    发表于 07-14 09:45

    ASCII及十六进制转换工具

    ASCII及十六进制转换工具
    发表于 09-25 23:31

    单片机串口发送16进制ASCII单片机的串口是什么

    数组里面进行发送,也可以用sprintf函数对数据进行格式化成16进制格式,在进行发送。2.如果你想发送ASCII码,就要把数据转换成字符串或者AS
    发表于 11-25 06:17

    ASCII转换成十六进制

    ASCII转换成十六进制数 入口条件:待转换ASCII码(30H~39H或41H~46H)在A中。出口信息:
    发表于 01-19 22:48 1.4w次阅读

    如何进行ASCII码和十六进制数的转换

    本文档的主要内容详细介绍的是如何使用51单片机进行ASCII码和十六进制数的转换资料免费下载题目:用查表法将一位十六进制转换
    发表于 07-08 17:41 6次下载
    如何进行<b class='flag-5'>ASCII</b>码和十六<b class='flag-5'>进制</b>数的<b class='flag-5'>转换</b>

    单片机串口发送16进制ASCII

    数组里面进行发送,也可以用sprintf函数对数据进行格式化成16进制格式,在进行发送。2.如果你想发送ASCII码,就要把数据转换成字符串或者AS
    发表于 11-17 10:36 26次下载
    单片机串口发送<b class='flag-5'>16</b><b class='flag-5'>进制</b>、<b class='flag-5'>ASCII</b>

    HTA:将十六进制转换ASCII 字符串

    说明 使用该指令,可以将在输入 IN 中指定的十六进制转换ASCII 字符串。转换结果存储到参数 OUT 指定的地址中。 使用参数 N,可指定待
    的头像 发表于 06-26 11:01 1967次阅读