ASCII码

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

A在ascii中定义为01000001,也就是十进制65,有了这个标准后,当我们输入A时,计算机就可以通过ascii码知道输入的字符的二进制编码是01000001。而没有这样的标准,我们就必须自己想办法告诉计算机我们输入了一个A;没有这样的标准,我们在别的机器上就需要重新编码以告诉计算机我们要输入A。ascii码指的不是十进制,是二进制。只是用十进制表示习惯一点罢了,比如在ascii码中,A的二进制编码为01000001,如果用十进制表示是65,用十六进制表示就是41H

下面摘录自http://www.51hei.com/bbs/dpj-22296-1.html

在串口调试助手发送选项和接收选项处,还有个“字符格式发送”和“字符格式显示”,这是什么意思呢?
先抛开我们使用的汉字不谈,那么我们常用的字符就包含了0~9的数字、A~Z/a~z的字母、还有各种标点符号等。那么在计算机系统里面我们怎么来表示它们呢?ASCII码(American Standard Code for Information Interchange,即美国信息互换标准代码)可以完成这个使命:我们知道,在计算机中一个字节的数据可以有0~255共256个值,我们取其中的0~127共128个值赋予了它另外一层涵义,即让它们分别来代表一个常用字符,其具体的对应关系如下表。
表11-3 ASCII表
ASCII值
控制字符
ASCII值
字符
ASCII值
字符
ASCII值
字符
000
NUL
032
(space)
064
@
096
001
SOH
033
!
065
A
097
a
002
STX
034
"
066
B
098
b
003
ETX
035
#
067
C
099
c
004
EOT
036
$
068
D
100
d
005
END
037
%
069
E
101
e
006
ACK
038
&
070
F
102
f
007
BEL
039
'
071
G
103
g
008
BS
040
(
072
H
104
h
009
HT
041
)
073
I
105
i
010
LF
042
*
074
J
106
j
011
VT
043
+
075
K
107
k
012
FF
044
076
L
108
l
013
CR
045
-
077
M
109
m
014
SO
046
078
N
110
n
015
SI
047
/
079
O
111
o
016
DLE
048
0
080
P
112
p
017
DC1
049
1
081
Q
113
q
018
DC2
050
2
082
R
114
r
019
DC3
051
3
083
S
115
s
020
DC4
052
4
084
T
116
t
021
NAK
053
5
085
U
117
u
022
SYN
054
6
086
V
118
v
023
ETB
055
7
087
W
119
w
024
CAN
056
8
088
X
120
x
025
EM
057
9
089
Y
121
y
026
SUB
058
:
090
Z
122
z
027
ESC
059
;
091
[
123
{
028
FS
060
<
092
\
124
|
029
GS
061
=
093
 
125
}
030
RS
062
>
094
^
126
~
031
US
063
?
095
_
127
DEL
这样我们就在常用字符和字节数据之间建立了一一对应的关系,字节是数据存储的最小单位,存储一个字符是以字节为单位进行的(也即是8位二进制),那么现在一个字节就既可以代表一个整数又可以代表一个字符了,但它本质上只是一个字节的数据,而我们赋予了它不同的涵义,什么时候赋予它哪种涵义就看编程者的意图了。
通过上述可以知道串口通信的本质是发送对应字符的以二进制表示的ASCII码:
比如:
用字符格式发送一个小写的a,a的ASCII码是二进制 0110 0001 ,十六进制的0x61,十进制是97,就是通过串口把0110 0001按位发送出去;
用字符格式发送一个数字1,   1的ASCII码是二进制 0011 0001 ,十六进制的0x31,十进制是49,就是通过串口把0011 0001按位发送出去;
用字符格式发送  a12b,  a12b的ASCII码是二进制 0110 0001 0011 0001 0011 0010 0110 0010,十六进制 61 31 32 62 ,就是通过串口按位发送出去,而每发送八位数据(一个字节)就有一个停止位,然后发送接下来的一个字符(8位),这样就依次发送了字符a-1-2-b 的ASCII码。
用十六进制发送的本质就是发送对应字符的ASCII码的十六进制表示,发送框里写入十六进制,实际发送的时候仍然是十六进制转换为二进制,然后按位发送出去。 

串行通信------字符串发送和十六进制发送相关推荐

  1. java串口发送16进制_串口发送数据——字符串发送与十六进制发送的区别

    在计算机中,数据是以二进制的形式存储的,例如十进制 1(10)在计算机中用 0000 0001(2)来表示.我们在用串口发送数据的时候首先将待数据转换为对应的ASCII码,然后再将这些ASCII码按照 ...

  2. 写QT串口通信的UI界面时,数据输入文本框为什么要有文本(字符串)发送和十六进制发送?

    今天使用qt编写界面给下位机串口通信时,遇到了十六进制发送的问题,查了好多分享都没有给出很清楚的解释和建设性的意见,最终尝试了好多次才明白,也对串口通信有了新的理解,在此写下我学到的内容,如有不对,还 ...

  3. 串口发送数据——字符串发送与十六进制发送的区别

    我们在用串口发送数据的时候首先将待发送的数据/符号转换为对应的ASCII码,然后将这些ASCII码按照二进制的方式一位一位地发送出去. (注:以下图片来自https://blog.csdn.net/w ...

  4. QT学习笔记:简单的串口调试助手--实现 字符与十六进制发送接收

    这两天捣鼓了一个简单的串口调试助手,参考QT例程terminal,可能是因为新手的缘故,发现字符发送和字符显示比较容易实现,而十六进制相对难实现一些.在这里记录一下我的实现方法. /// /// \b ...

  5. ajax php 返回数组并父子给变量,将字符串变量从PHP发送回数组变量的ajax ...?

    我想将一条消息保存在PHP变量中,并用已返回的其他数组变量发回.例如,我在PHP代码中发生了一些错误检查,并想要一个字符串变量,并将特定的消息发送回我的javascript中使用.将字符串变量从PHP ...

  6. 51 32单片机使用蓝牙测RSSI值定位(包含字符串发送,接收字符串,数据解析发送,中断超时接收等)

    首先这是一篇血泪文章,当你看到这篇文章的时候,笔者已经失败了,首先笔者选用了51单片机进行编写,51单片机的一个串口难以进行相应的验证,这是其一:其二,使用AT+CWLAP调回WIFI信息的时候,你会 ...

  7. vb6.0开发的上位机串口助手(自动识别电脑端口号、支持文本、十六进制发送)

    VB是可视化的编程,就是把一些图标控件拖到编程板上,然后用代码编写每个按钮的实现功能,(如:按下按钮会发生什么事) vb在零几年的时候非常流行,近年来逐渐淡出人们的视野,但是用其来编写一些简单的上位机 ...

  8. python中带附件发送电子邮件_python发送带附件邮件

    Python SMTP发送邮件 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. py ...

  9. 实现微信小程序定时发送通知(1)发送请求篇

    引言 关于access_token 小程序发通知需要获取获取小程序全局唯一后台接口调用凭据(access_token).调用绝大多数后台接口时都需使用 access_token,后面会进行使用redi ...

最新文章

  1. 不一样的Office 365之 —— Mini Hybrid了解一下(三)迁移邮箱
  2. 虚位以待C#-北京Objectiva
  3. 【项目管理】PMO内容整理
  4. group by 将null放到其他_为什么我不建议你用去 “ ! = null quot; 做判空?
  5. oracle 建表id自增长_oracle 左连接、右连接、全外连接、内连接、以及 (+) 号用法...
  6. c语言猜四位数游戏猜10次,C语言猜数字游戏--随机生成4个不相同的数字从小到大排序,用户开始游戏,如果用户猜对数字和数字对应的位置,界面回馈A,如果数字正确位置不正确,则回馈B...
  7. 漫步最优化二十九——D.S.C.算法
  8. C# 判断上传图片是否被PS修改过的方法
  9. 泰安本地话听不懂,为何后来能勉强听懂?
  10. 如何做好测试用例设计
  11. VS2010使用教程(使用VS2010编写C语言程序)
  12. servlet到底是什么
  13. 2021深圳杯d题数学建模 基于一个微分对策问题的机器学习能力定量评价
  14. 注塑工艺工程师视频教程 注塑机调机成型参数教程
  15. 新浪微博批量登录获取cookie
  16. linux+磁盘清理工具,linux centos 磁盘清理
  17. JavaScript高级04 正则表达式
  18. windows常用命令及相关命令
  19. git fatal: unable to access '/': schannel: next InitializeSecurityContext error (0x80092013)
  20. python输出乘法式子(HLOJ)(完整解析)

热门文章

  1. C# OpenGL 环境配置和入门程序
  2. eclipse调试一个struts2例子时遇到的一些问题总结
  3. Java设计模式理论知识要点总结
  4. 数据库中的约束和三大范式
  5. [BZOJ3668][Noi2014]起床困难综合症 贪心
  6. PHP header的几种用法
  7. XDebug分析php代码性能
  8. hibernate annotation注解 columnDefinition用法
  9. Winform开发框架之混合型框架的实现
  10. java 正则表达式 demo_JAVA正则表达式语法