ASCII码转换问题

ASCII码转换问题
ASCII码转换问题

ASCII码转换问题

有网友在留言中问我,用通信得到的ASCII码温度数据如下:30H 31H 31H 32H 2E 35H ,怎么也弄不出来在上位机显示112.5度。最多只能显示12.5度,就是说百位丢失了,用FC94以后不知怎么转换,希望老师能给个思路。

下面是我的回答:用FC 94转换的确有问题,可能是因为处理不了小数点。

如果用IEC的FC39转换,它要求ASCII码的格式必须是±v.nnnnnnnE±xx ,±为符号位,v是1位整数,nnnnnnn是7位小数,xx是两位指数。

我想了两个方案:

1.用原始的ASCII码组建满足FC 39的字符串,然后转换。

2.如果ASCII码的小数点位置是固定的,可编一个程序来转换。例如假设温度以0.1度为单位,用字的“与”运算将各位(不包括小数点)ASCII码的低4位数字取出来,乘以该位的权值(如果以0.1度为单位,例如百位为1000)后相加,得到以0.1度为单位的整数值。

数字0~9的ASCII码是16#30~16#39,下面的程序将MB0中数字的ASCII码转换为原数字:

L MB 0

L B#16#F

AW

T MB 1

我在网上征集方案,qzcq提出用人机界面直接显示字符串的方案就很好,已用仿真验证。需要补充一下,标准字符串有两个字节的头部,分别是最大字符数和实际的字符数。

你可以将16进制的30减去十进制的48就ok了,具体怎么编程你试试吧

也有专门的转换指令

不知道你用的是200还是300

你可以把16进制的数放到一个字节中,然后再取就行了

我不知道你转换二进制有什么用途,

可否说明你的意图

转换成16进制是可以进行运算的,你也可以读出其中某一位的值是0还是1

不知能否解决你的疑惑

单片机实验二进制ASCII码转换

实验三二进制ASCII码转换 一、实验目的 1.了解BCD值和ASCII值的区别 2.掌握用查表的方法将BCD值转换成ASCII值 二、实验说明 此实验主要让学生了解数值的BCD码和ASCII码的区别,利用查表方法可以快速地进行数值转换。进一步掌握数值的各种表达方式。现在我们给出一个BCD数,将其转换成ASCII 值。如下:将累加器A的值拆为二个ASCII码,并存入Result开始的二个单元,例程A赋值#1AH。 三、实验内容及步骤 1.安装好仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,插上仿真器电源插头(USB线)。 2.启动PC机,打开KEIL软件,软件设置为模拟调试状态。在所建的Project文件中添加TH 3.ASM源程序进行编译,编译无误后,全速运行程序,打开数据窗口(DATA)(在MEMORY#1中输入D:30H 回车),点击暂停按钮,观察地址30H、31H的数据变化,30H更新为31,31H 更新为41。用键盘输入改变地址30H、31H的值,点击复位按钮后,可再次运行程序,观察其实验效果。修改源程序中给累加器A的赋值,重复实验,观察实验效果。 3.打开CPU窗口,选择单步或跟踪执行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。 四、流程图及源程序(见光盘中的程序文件夹) 1.源程序 RESULT EQU 30H ORG 0 LJMP START ASCIITAB: DB ‘0123456789ABCDEF' ;定义数字对应的ASCII表 BINTOHEX: MOV DPTR,#ASCIITAB MOV B, A ;暂存A SWAP A ANL A,#0FH ;取高四位 MOVC A,@A+DPTR ;查ASCII表 MOV RESULT, A MOV A,B ;恢复A ANL A,#0FH ;取低四位 MOVC A,@A+DPTR ;查ASCII表 MOV RESULT+1,A RET START: MOV SP,#40H

ascii码对照表完整版doc

**ASCII 码对照表完整版 信息在计算机上是用二进制表示的,这种表示法让人理解就很困难。因此计算机上都配有输入和输出设备,这些设备的主要目的就是,以一种人类可阅读的形式将信息在这些设备上显示出来供人阅读理解。为保证人类和设备,设备和计算机之间能进行正确的信息交换,人们编制的统一的信息交换代码,这就是ASCII码表,它的全称是“美国信息交换标准代码”。

ASCII 在Web开发时,如下的ASCII码只要加上&#和;就可以变成Web可以辨认的字符了在处理特殊字符的时候特别有用,如:' 单引号在数据库查询的时候是杀手,但是如果转换成'(注意:转换后的机构有:&# +字符的ASCII码值+; 三个部分组成)再来存数据库,就没有什么影响了。其他的字符与ASCII码的对照如下表 ASCII表

键盘常用ASCII码ESC键 VK_ESCAPE (27) 回车键: VK_RETURN (13) TAB键: VK_TAB (9) Caps Lock键: VK_CAPITAL (20) Shift键: VK_SHIFT ($10)

Ctrl键: VK_CONTROL (17) Alt键: VK_MENU (18) 空格键: VK_SPACE ($20/32) 退格键: VK_BACK (8) 左徽标键: VK_LWIN (91) 右徽标键: VK_LWIN (92) 鼠标右键快捷键:VK_APPS (93) Insert键: VK_INSERT (45) Home键: VK_HOME (36) Page Up: VK_PRIOR (33) PageDown: VK_NEXT (34) End键: VK_END (35) Delete键: VK_DELETE (46) 方向键(←): VK_LEFT (37) 方向键(↑): VK_UP (38) 方向键(→): VK_RIGHT (39) 方向键(↓): VK_DOWN (40) F1键: VK_F1 (112) F2键: VK_F2 (113) F3键: VK_F3 (114) F4键: VK_F4 (115) F5键: VK_F5 (116) F6键: VK_F6 (117) F7键: VK_F7 (118) F8键: VK_F8 (119) F9键: VK_F9 (120) F10键: VK_F10 (121) F11键: VK_F11 (122) F12键: VK_F12 (123) Num Lock键: VK_NUMLOCK (144) 小键盘0: VK_NUMPAD0 (96) 小键盘1: VK_NUMPAD0 (97) 小键盘2: VK_NUMPAD0 (98) 小键盘3: VK_NUMPAD0 (99) 小键盘4: VK_NUMPAD0 (100) 小键盘5: VK_NUMPAD0 (101) 小键盘6: VK_NUMPAD0 (102) 小键盘7: VK_NUMPAD0 (103) 小键盘8: VK_NUMPAD0 (104) 小键盘9: VK_NUMPAD0 (105) 小键盘.: VK_DECIMAL (110)

ASCII码对照表 -

ASCII码对照表 ASCII码对照表 ASCII, American Standard Code for Information Interchange 念起来像是 "阿斯key",定义从 0 到 127 的一百二十八个数字所代表的英文字母或一样的结果与 意义。由于只使用7个位元(bit)就可以表示从0到127的数字,大部分的电脑都使 用8个位元来存取字元集(character set),所以从128到255之间的数字可以用来代 表另一组一百二十八个符号,称为 extended ASCII。 ASCII码键盘ASCII 码键盘ASCII码键盘ASCII 码键盘 27ESC32SPACE33!34" 35#36$37%38& 39'40(41)42* 43+44'45-46. 47/480491502 513524535546 55756857958: 59;60<61=62> 63?64@65A66B 67C68D69E70F 71G72H73I74J 75K76L77M78N 79O80P81Q82R 83S84T85U86V 87W88X89Y90Z 91[92\93]94^ 95_96`97a98b 99c100d101e102f 103g104h105i106j 107k108l109m110n 111o112p113q114r 115s116t117u118v 119w120x121y122z 123{124|125}126~ 目前计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码 (American Standard Code for Information Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。 因为1位二进制数可以表示(21=)2种状态:0、1;而2位二进制数可以表示(22)=4种状态:00、01、10、11;依次类推,7位二进制数可以表示(27=)128种状态,每种状态都唯一地编为一个7位的二进制码,对应一个字符(或控制码),这些码可以排列成一个十进制序号0~127。所以,7位ASCII码是用七位二进制数进行编码的,可以表示128个字符。

符号与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、实验体会 六、实验报告正文: 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、标点符号,以及在美式英语中使用的特殊控制字符。其中:

ASCII码对照表完整版

A S C I I码对照表完整版 Revised final draft November 26, 2020

好用的A S C I I码对照表完整版 信息在计算机上是用二进制表示的,这种表示法让人理解就很困难。因此计算 机上都配有输入和输出设备,这些设备的主要目的就是,以一种人类可阅读的形式 将信息在这些设备上显示出来供人阅读理解。为保证人类和设备,设备和计算机之 间能进行正确的信息交换,人们编制的统一的信息交换代码,这就是ASCII码表,

在Web开发时,如下的ASCII码只要加上&#和;就可以变成Web可以辨认的字符了在处理特殊字符的时候特别有用,如:'单引号在数据库查询的时候是杀手,但是如果转换成'(注意:转换后的机构有:&#+字符的ASCII码值+;三个部分组成)再来存数据库,就没有什么影响了。其他的字符与ASCII码的对照如下表 ASCII表

键盘常用ASCII码 ESC键VK_ESCAPE(27)回车键:VK_RETURN(13)TAB键:VK_TAB(9)CapsLock键: VK_CAPITAL(20)Shift键:VK_SHIFT($10)Ctrl键:VK_CONTROL(17)Alt键: VK_MENU(18)空格键:VK_SPACE($20/32)退格键:VK_BACK(8)左徽标键:VK_LWIN(91)右徽标键:VK_LWIN(92)鼠标右键快捷键:VK_APPS(93) Insert键:VK_INSERT(45)Home键:VK_HOME(36)PageUp:VK_PRIOR(33)PageDown:VK_NEXT(34)End键:VK_END(35)Delete键:VK_DELETE(46) 方向键(←):VK_LEFT(37)方向键(↑):VK_UP(38)方向键(→):VK_RIGHT(39)方向键(↓):VK_DOWN(40) F1键:VK_F1(112)F2键:VK_F2(113)F3键:VK_F3(114)F4键:VK_F4(115)F5键:

最全ASCII码对照表

最全ASCII码对照表 Bin Dec Hex 缩写/字符解释 0000 0000 0 00 NUL (null) 空字符0000 0001 1 01 SOH (start of handing) 标题开始0000 0010 2 02 STX (start of text) 正文开始0000 0011 3 03 ETX (end of text) 正文结束0000 0100 4 04 EOT (end of transmission) 传输结束0000 0101 5 05 ENQ (enquiry) 请求 0000 0110 6 06 ACK (acknowledge) 收到通知0000 0111 7 07 BEL (bell) 响铃 0000 1000 8 08 BS (backspace) 退格 0000 1001 9 09 HT (horizontal tab) 水平制表符0000 1010 10 0A LF (NL line feed, new line) 换行键 0000 1011 11 0B VT (vertical tab) 垂直制表符0000 1100 12 0C FF (NP form feed, new page) 换页键 0000 1101 13 0D CR (carriage return) 回车键0000 1110 14 0E SO (shift out) 不用切换0000 1111 15 0F SI (shift in) 启用切换0001 0000 16 10 DLE (data link escape) 数据链路转义0001 0001 17 11 DC1 (device control 1) 设备控制1 0001 0010 18 12 DC2 (device control 2) 设备控制2 0001 0011 19 13 DC3 (device control 3) 设备控制3 0001 0100 20 14 DC4 (device control 4) 设备控制4 0001 0101 21 15 NAK (negative acknowledge) 拒绝接收0001 0110 22 16 SYN (synchronous idle) 同步空闲0001 0111 23 17 ETB (end of trans. block) 传输块结束0001 1000 24 18 CAN (cancel) 取消 0001 1001 25 19 EM (end of medium) 介质中断0001 1010 26 1A SUB (substitute) 替补 0001 1011 27 1B ESC (escape) 溢出 0001 1100 28 1C FS (file separator) 文件分割符0001 1101 29 1D GS (group separator) 分组符0001 1110 30 1E RS (record separator) 记录分离符0001 1111 31 1F US (unit separator) 单元分隔符 0010 0000 32 20 空格 0010 0001 33 21 ! 0010 0010 34 22 " 0010 0011 35 23 # 0010 0100 36 24 $ 0010 0101 37 25 % 0010 0110 38 26 & 0010 0111 39 27 "

ASCII码转16进制对照表

ASCII与16进制转换 ASCII16进制ASCII16进制ASCII16进制ASCII16进制NUL00H DLE10H SP20H030H SOH01H DC111H!21H131H STX02H DC212H"22H232H ETX03H DC313H#23H333H EOT04H DC414H$24H434H ENQ05H NAK15H%25H535H ACK06H SYN16H&26H636H BEL07H ETB17H'27H737H BS08H CAN18H(28H838H HT09H EM19H)29H939H LF0AH SUB1AH*2AH:3AH VT0BH ESC1BH+2BH;3BH FF0CH FS1CH,2CH<3CH CR0DH GS1DH_2DH=3DH SO0EH RS1EH.2EH>3EH SI0FH US1FH/2FH?3FH ASCII16进制ASCII16进制ASCII16进制ASCII16进制@40H P50H、60H p70H A41H Q51H a61H q71H B42H R52H b62H r72H C43H S53H c63H s73H D44H T54H d64H t74H E45H U55H e65H u75H F46H V56H f66H v76H G47H W57H g67H w77H H48H X58H h68H x78H

I49H Y59H i69H y79H J4AH Z5AH j6AH z7AH K4BH[5BH k6BH{7BH L4CH\5CH l6CHㄧ7CH M4DH]5DH m6DH}7DH N4EH↑5EH n6EH~7EH O4FH←5FH o6FH DEL7FH

ASCII码对照表&完整版

好用的ASCII 码对照表完整版 信息在计算机上是用二进制表示的,这种表示法让人理解就很困难。因此计算机上都配有输入和输出设备,这些设备的主要目的就是,以一种人类可阅读的形式将信息在这些设备上显示出来供人阅读理解。为保证人类和设备,设备和计算机之间能进行正确的信息交换,人们编制的统一的信息交换代码,这就是ASCII码表,它的全称是“美国信息交换标准代码”。

ASCII码对照表 在Web开发时,如下的ASCII码只要加上&#和;就可以变成Web可以辨认的字符了在处理特殊字符的时候特别有用,如:' 单引号在数据库查询的时候是杀手,但是如果转换成'(注意:转换后的机构有:&# +字符的ASCII码值+; 三个部分组成)再来存数据库,就没有什么影响了。其他的字符与ASCII码的对照如下表 ASCII表

键盘常用ASCII码ESC键 VK_ESCAPE (27) 回车键: VK_RETURN (13) TAB键: VK_TAB (9) Caps Lock键: VK_CAPITAL (20)

Shift键: VK_SHIFT ($10) Ctrl键: VK_CONTROL (17) Alt键: VK_MENU (18) 空格键: VK_SPACE ($20/32) 退格键: VK_BACK (8) 左徽标键: VK_LWIN (91) 右徽标键: VK_LWIN (92) 鼠标右键快捷键:VK_APPS (93) Insert键: VK_INSERT (45) Home键: VK_HOME (36) Page Up: VK_PRIOR (33) PageDown: VK_NEXT (34) End键: VK_END (35) Delete键: VK_DELETE (46) 方向键(←): VK_LEFT (37) 方向键(↑): VK_UP (38) 方向键(→): VK_RIGHT (39) 方向键(↓): VK_DOWN (40) F1键: VK_F1 (112) F2键: VK_F2 (113) F3键: VK_F3 (114) F4键: VK_F4 (115) F5键: VK_F5 (116) F6键: VK_F6 (117) F7键: VK_F7 (118) F8键: VK_F8 (119) F9键: VK_F9 (120) F10键: VK_F10 (121) F11键: VK_F11 (122) F12键: VK_F12 (123) Num Lock键: VK_NUMLOCK (144) 小键盘0: VK_NUMPAD0 (96) 小键盘1: VK_NUMPAD0 (97) 小键盘2: VK_NUMPAD0 (98) 小键盘3: VK_NUMPAD0 (99) 小键盘4: VK_NUMPAD0 (100) 小键盘5: VK_NUMPAD0 (101) 小键盘6: VK_NUMPAD0 (102) 小键盘7: VK_NUMPAD0 (103) 小键盘8: VK_NUMPAD0 (104) 小键盘9: VK_NUMPAD0 (105)

最全ASCII码对照表

最全ASCII码对照表 2009-04-15 00:00 Bin Dec Hex 缩写/字符解释 0000 0000 0 00 NUL (null) 空字符0000 0001 1 01 SOH (start of handing) 标题开始0000 0010 2 02 STX (start of text) 正文开始0000 0011 3 03 ETX (end of text) 正文结束0000 0100 4 04 EOT (end of transmission) 传输结束0000 0101 5 05 ENQ (enquiry) 请求 0000 0110 6 06 ACK (acknowledge) 收到通知0000 0111 7 07 BEL (bell) 响铃 0000 1000 8 08 BS (backspace) 退格 0000 1001 9 09 HT (horizontal tab) 水平制表符0000 1010 10 0A LF (NL line feed, new line) 换行键0000 1011 11 0B VT (vertical tab) 垂直制表符0000 1100 12 0C FF (NP form feed, new page) 换页键 0000 1101 13 0D CR (carriage return) 回车键 0000 1110 14 0E SO (shift out) 不用切换0000 1111 15 0F SI (shift in) 启用切换0001 0000 16 10 DLE (data link escape) 数据链路转义0001 0001 17 11 DC1 (device control 1) 设备控制1 0001 0010 18 12 DC2 (device control 2) 设备控制2 0001 0011 19 13 DC3 (device control 3) 设备控制3 0001 0100 20 14 DC4 (device control 4) 设备控制4 0001 0101 21 15 NAK (negative acknowledge) 拒绝接收0001 0110 22 16 SYN (synchronous idle) 同步空闲0001 0111 23 17 ETB (end of trans. block) 传输块结束0001 1000 24 18 CAN (cancel) 取消 0001 1001 25 19 EM (end of medium) 介质中断0001 1010 26 1A SUB (substitute) 替补 0001 1011 27 1B ESC (escape) 溢出 0001 1100 28 1C FS (file separator) 文件分割符0001 1101 29 1D GS (group separator) 分组符 0001 1110 30 1E RS (record separator) 记录分离符0001 1111 31 1F US (unit separator) 单元分隔符0010 0000 32 20 空格 0010 0001 33 21 ! 0010 0010 34 22 " 0010 0011 35 23 # 0010 0100 36 24 $ 0010 0101 37 25 % 0010 0110 38 26 & 0010 0111 39 27 ' 0010 1000 40 28 ( 0010 1001 41 29 )

ASCII码转字符串

public static int Asc(string character) { if (character.Length == 1) { System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding(); int intAsciiCode = (int)asciiEncoding.GetBytes(character)[0]; return (intAsciiCode); } else { throw new Exception("Character is not valid."); } } ASCII码转字符: 单个字符 public static string Chr(int asciiCode) { if (asciiCode >= 0 && asciiCode <= 255) { System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding(); byte[] byteArray = new byte[] { (byte)asciiCode }; string strCharacter = asciiEncoding.GetString(byteArray); return (strCharacter); } else { throw new Exception("ASCII Code is not valid."); } } Excel专用 ///

/// ASCII码转字符串(转换为Excel列的形式:A/B/C...AA/AB/AC...BA/BB/......)

常用ASCII码对照表

常用ASCII码对照表 ASCII, American Standard Code for Information Interchange 念起来像是"阿斯key",定义从0 到127 的一百二十八个数字所代表的英文字母或一样的结果与意义。由于只使用7个位元(bit)就可以表示从0到127的数字,大部分的电脑都使用8个位元来存取字元集(character set),所以从128到255之间的数字可以用来代表另一组一百二十八个符号,称为extended ASCII。 目前计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母,ASCII 码有7位码和8位码两种形式。 因为1位二进制数可以表示2种状态:0、1;而2位二进制数可以表示4种状态:00、01、10、11;依次类推,7位二进制数可以表示128种状态,每种状态都唯一地编为一个7位的二进制码,对应一个字符(或控制码),这些码可以排列成一个十进制序号0~127。所以,7位ASCII码是用七位二进制数进行编码的,可以表示128个字符。 第0~32号及第127号(共34个)是控制字符或通讯专用字符,

如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BEL (振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等; 第33~126号(共94个)是字符,其中第48~57号为0~9十个阿拉伯数字;65~90号为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。 注意:在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位),其最高位(b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。 为了便于查询,以下列出ASCII码表:常用ASCII 码对照表 ASCII码表 ASCII值控制字符ASCII值控制字符ASCII值控制字符ASCII 值控制字符 0 NUL 32 (space) 64 @ 96 、 1 SOH 33 !65 A 97 a

ASCII码对照表

附录A ASCII码表 对照表 A S C I I值控制字符 A S C I I值字符 A S C I I值字符 A S C I I值字符 0 00N U L0 32( s p a c e)0 64@0 96` 0 01S O H0 33!0 65A0 97a 0 02S T X0 34"0 66B0 98b 0 03 E T X0 35#0 67C0 99c 0 04 E O T0 36$0 68D 1 00d 0 05 E N D0 37%0 69E 1 01e 0 06 A C K0 38&0 70F 1 02f 0 07 B E L0 39’0 71G 1 03g 0 08 B S0 40(0 72H 1 04h 0 09H T0 41)0 73I 1 05i 0 10L F0 42*0 74J 1 06j 0 11V T0 43+0 75K 1 07k 0 12 F F0 44,0 76L 1 08l 0 13 C R0 45-0 77M 1 09m 0 14S O0 46。0 78N11 0n 0 15S I0 47/0 79O111o 0 16 D L E0 4800 80P11 2p 0 17 D C10 4910 81Q11 3q 0 18 D C20 5020 82R11 4r 0 19 D C30 5130 83S11 5s 0 20 D C40 5240 84T11 6t 0 21N A K0 5350 85U11 7u 0 22S Y N0 5460 86V11 8v 0 23 E T B0 5570 87W11 9w 0 24 C A N0 5680 88X 1 20x 0 25 E M0 5790 89Y 1 21y 0 26S U B0 58:0 90Z 1 22z 0 27 E S C0 59;0 91[ 1 23{ 0 28 F S0 60<0 92\ 1 24| 0 29G S0 61=0 93] 1 25} 0 30R S0 62>0 94^ 1 26~ 0 31U S0 63?0 95_ 1 27□

ASCII码对照表

ASCII码的取值范围是0~127,可以用7个bit表示。C语言中char型变量的大小规定为一字节,如果存放ASCII码则只用到低7位,高位为0。以下是ASCII码表: 图 A.1. ASCII码表 Hex Symbol 0 1 2 3 4 5 6 7 8 9 A B C D NUL SOH STX ETX EOT ENQ ACK BEL BS TAB LF VT FF CR ASCII Hex Symbol 16 17 18 19 20 21 22 23 24 25 26 27 28 29 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS ASCII Hex Symbol 32 33 34 35 36 37 38 39 40 41 42 43 44 45 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D (space) ! " # $ % & ' ( ) * + , - ASCII Hex Sy 48 49 50 51 52 53 54 55 56 57 58 59 60 61 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D

14 15 E F SO SI 30 31 1E 1F RS US 46 47 2E 2F . / 62 63 3E 3F > ? ASCII Hex Symbol 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F @ A B C D E F G H I J K L M N O ASCII Hex Symbol 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F P Q R S T U V W X Y Z [ \ ] ^ _ ASCII Hex Symbol 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F ` a b c d e f g h i j k l m n o ASCII Hex Symbol 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F p q r s t u v w x y z { | } ~ 绝大多数计算机的一个字节是8位,取值范围是0~255,而ASCII码并没有规定编号为128~255的字符, 为了能表示更多字符,各厂商制定了很多种ASCII码的扩展规范。注意,虽然通常把这些规范称为扩展ASCII 码(Extended ASCII),但其实它们并不属于ASCII码标准。例如以下这种扩展ASCII码由IBM制定,在 字符终端下被广泛采用,其中包含了很多表格边线字符用来画界面。 图 A.2. IBM的扩展ASCII码表 在图形界面中最广泛使用的扩展ASCII码是ISO-8859-1,也称为Latin-1,其中包含欧洲各国语言中最常

ASCII码转换问题

ASCII码转换问题 有网友在留言中问我,用通信得到的ASCII码温度数据如下:30H 31H 31H 32H 2E 35H ,怎么也弄不出来在上位机显示112.5度。最多只能显示12.5度,就是说百位丢失了,用FC94以后不知怎么转换,希望老师能给个思路。 下面是我的回答:用FC 94转换的确有问题,可能是因为处理不了小数点。 如果用IEC的FC39转换,它要求ASCII码的格式必须是±v.nnnnnnnE±xx ,±为符号位,v是1位整数,nnnnnnn是7位小数,xx是两位指数。 我想了两个方案: 1.用原始的ASCII码组建满足FC 39的字符串,然后转换。 2.如果ASCII码的小数点位置是固定的,可编一个程序来转换。例如假设温度以0.1度为单位,用字的“与”运算将各位(不包括小数点)ASCII码的低4位数字取出来,乘以该位的权值(如果以0.1度为单位,例如百位为1000)后相加,得到以0.1度为单位的整数值。 数字0~9的ASCII码是16#30~16#39,下面的程序将MB0中数字的ASCII码转换为原数字: L MB 0 L B#16#F AW T MB 1 我在网上征集方案,qzcq提出用人机界面直接显示字符串的方案就很好,已用仿真验证。需要补充一下,标准字符串有两个字节的头部,分别是最大字符数和实际的字符数。 你可以将16进制的30减去十进制的48就ok了,具体怎么编程你试试吧 也有专门的转换指令 不知道你用的是200还是300 你可以把16进制的数放到一个字节中,然后再取就行了 我不知道你转换二进制有什么用途, 可否说明你的意图 转换成16进制是可以进行运算的,你也可以读出其中某一位的值是0还是1 不知能否解决你的疑惑

C进制文本转换为ascii码

我用的将16进制文本转换为ascii码的C语言代码。16进制文本复制到文件test.txt中,运行程序,将得到输入。 例: 运行:./CSTRING test.txt 其中,test.txt文件内容为: 30:31:32 则得到的"Cstring.txt"输入文件中 012 本程序能自动跳过0或多个分隔符(分隔符可以为任意的符号,如“:”,“%”或空格等,判断的函数实现见SkipDelimiter函数)。 如:输入文件内容为: 30 31 32 或 303132 得到的都是 012 [cpp]view plain copy 1.#include 2.#include 3.#include 4.#include 5.#include 6.#include 7.#include 8.#include 9.typedef unsigned char uint8; 10.uint8 ConverseOneChar(uint8 ucChar) 11.{ 12. uint8 ucTmp = 0x00;

13. printf("one ucChar= 0x%x\n", (char)ucChar); 14.switch(ucChar) 15. { 16.case'0': 17. ucTmp = 0x00; 18.break; 19.case'1': 20. ucTmp = 0x01; 21.break; 22.case'2': 23. ucTmp = 0x02; 24.break; 25.case'3': 26. ucTmp = 0x03; 27.break; 28.case'4': 29. ucTmp = 0x04; 30.break; 31.case'5': 32. ucTmp = 0x05; 33.break; 34.case'6': 35. ucTmp = 0x06; 36.break; 37.case'7': 38. ucTmp = 0x07; 39.break; 40.case'8': 41. ucTmp = 0x08; 42.break; 43.case'9': 44. ucTmp = 0x09; 45.break; 46.case'a': 47.case'A': 48. ucTmp = 0x0a; 49.break; 50.case'b': 51.case'B': 52. ucTmp = 0x0b; 53.break; 54.case'c': 55.case'C': 56. ucTmp = 0x0c;

ASCII码对照表(含扩展)

常用ASCII码对照表(含扩展) (0—255) 第0~32号及第127号(共34个)是控制字符或通讯专用字符,如控制符:LF (换行)、CR(回车)、FF(换页)、DEL(删除)、BEL(振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等; 第33~126号(共94个)是字符,其中第48~57号为0~9十个阿拉伯数字;65~90号为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。 后128个(128—255)称为扩展ASCII码,目前许多基于x86的系统都支持使用扩展(或“高”)ASCII。见最后一页扩展表: Binary Dec Hex 缩写/字符解释00000000 0 00 NUL(null) 空字符00000001 1 01 SOH(startof handling) 标题开始00000010 2 02 STX (start of text) 正文开始00000011 3 03 ETX (end of text) 正文结束00000100 4 04 EOT (end of transm-ission) 传输结束00000101 5 05 ENQ (enquiry) 请求00000110 6 06 ACK (acknow-ledge) 收到通知00000111 7 07 BEL (bell) 响铃00001000 8 08 BS (backsp-ace) 退格00001001 9 09 HT (horizon-tal tab) 水平制表符00001010 10 0A LF (NL line feed, new line) 换行键00001011 11 0B VT (vertical tab) 垂直制表符00001100 12 0C FF (NP form feed, new page) 换页键00001101 13 0D CR (carriage return) 回车键00001110 14 0E SO (shift out) 不用切换00001111 15 0F SI (shift in) 启用切换00010000 16 10 DLE (data link escape) 数据链路转义00010001 17 11 DC1 (device control 1) 设备控制1 00010010 18 12 DC2 (device control 2) 设备控制2 00010011 19 13 DC3 (device control 3) 设备控制3 00010100 20 14 DC4 (device control 4) 设备控制4 00010101 21 15 NAK (negative acknowledge 拒绝接收00010110 22 16 SYN (synchr-onous idle) 同步空闲00010111 23 17 ETB (end of trans. block) 传输块结束00011000 24 18 CAN (cancel) 取消00011001 25 19 EM (end of medium) 介质中断00011010 26 1A SUB (substit-ute) 替补00011011 27 1B ESC (escape) 溢出00011100 28 1C FS (file separat-or) 文件分割符00011101 29 1D GS (group separat-or) 分组符00011110 30 1E RS (record separat-or) 记录分离符

将ASCII码表示的十进制数转换为二进制数

一、实验内容: 实验1:将ASCII码表示的十进制数转换为二进制数 二、实验步骤: 1、从键盘输入五位的十进制数,保存在地址为3500H的存储单元 2、把这个十进制数转换为十六进制数,所得结果保存在地址为3510H的存储 单元中 3、把这个十六进制的结果的每位取出来,转换为ACSII码值,存储在地址为 3514H的存储单元中 4、把以3514H为起始地址的字符串输出到屏幕,即可得到5位十进制数转换 为二进制数的结果 三、程序代码: DATA SEGMENT ORG 34FEH BUF DB 10 DB DB 10 DUP() ORG 3510H BBF DB 20 DUP(),0DH,0AH,'$' IBF DB'Please input one number:',0DH,0AH,'$' ICF DB 0DH,0AH,'The result is:',0DH,0AH,'$' DATA ENDS STACK SEGMENT STACK 'STACK' STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATA MOV DS,AX MOV DX,OFFSET IBF MOV AH,9 INT 21H MOV DX,0 MOV AH,0AH LEA DX,BUF INT 21H MOV SI,3500H MOV DX,0 MOV CX,04H MOV BX,000AH MOV AH,00H CIRCLE:MOV AL,[SI] SUB AL,30H ADD AX,DX MUL BX MOV DX,AX

相关文档
最新文档