问:
1、“所有的7位ASCII码”是什么?
2、“扩充为16位”是什么意思?
3、“高位扩充的是零\X0”其中X0是什么?为什么“0X70 0X65 0X64 0X69 0X79 ”中都是0X?
0x表示这个数是16进制。
我来帮你解释一下:
ASCII 是美国定义的字符标准,用数值0~~7F 表示常见的英文字符,10进制的范围就是0-127了,比如我们常见的大写字母A ,ASCII值就是41(16进制) 65(10进制)。可以参见书中给的。
因为表示的字符并不多,所以只用一个字节就可以表示了。而我们说的一个字节是8个二进制位(如:1111 1111,此数的10进制是255,16进制是FF),而7F的二进制形式为(0111 1111) 所以老大说的7位就指有效的7位。扩充成16位二进制位,就是把7F(0111 1111)中的最高位0向更高位扩展了,当然更高位就成了0了,这就是老大说的意思。
因为UniCode用16个二进位来表示字符了。
\X 70 或0X 是指当前的数据的进制为16进制 0x \x指前导符。
MSComm 控件的Input 属性及InputMode 属性探究
最近对MSComm
当设置MSComm
以下代码可揭示上述结论:
Option Explicit
Private Sub Command1_Click()
End Sub
Private Sub Form_Load()
End Sub
Private Sub MsComm1_OnComm() '接收数据
End Sub
注意上述代码中设置MSComm
用一串口调试程序发送文本字节,单个汉字或单个ASCII字符(英文字母或0-9数字),你会发现,接收到汉字时MSComm1.InBufferCount值为2,接收A-Z(a-z,0-9)时MSComm1.InBufferCount值为1。同时Text2中显示分别是调试串口程序发送的单个汉字或单个ASCII字符(英文字母或0-9数字)。
当设置MSComm
Option Explicit
Private Sub Form_Load()
End Sub
Private Sub MSComm1_OnComm() '接收数据
End Sub