2020-11-02

关于ASCII码的一些理解

  • 本文参考的是王爽的汇编语言这本书,如果文中叙述有什么不妥之处请批评指正。
  • ASCII码实际上就是两个集合的对应关系。因为人类认知描述一件事物的时候往往是根据一些符号,比如大象(elephant),狮子(lion),不管是英文还是中文,本质上就是人们约定俗成的一些符号。但是计算机并没有意识,也就是不能对这些符号做相应的理解。它只能操作二进制数字,所以ASCII码就是将计算机理解的二进制数字和人类所理解的字符产生联系。采取的方法是用计算机的一个Byte单元所能表示的正整数的个数与一些字符做对应。
  • 因为一个Byte总共有8个位,这8个位可以表示的数应该是2的8次方,但是也就是256个数,但是ASCII码所采用的是正整数,因为正整数的最前面那个位应该为0,这样就少了一个位,所以最终一个Byte所对应的就是128个字符。但是数字是从0开始的所以就是0到127,可以查看ASCII码的表看到这样一种对应关系。
  • 比如通过下面的一个汇编代码来描述字符和ASCII码的对应关系。
Data segment
	db ‘unIX’
	db ‘FoRK’
data ends
code segment
start:	mov al,’a’
		mov bl,’b’
		mov ax,4c00h
		int 21h
code ends
end start

 - 上面汇编程序就是建立了一个Data的段,这个段中的具体的字符也并不是计算机中的真实存储的样子,db ‘unIX’实际上就是db 75H,6EH,49H,58H, db ‘FoRK’相当于db 66H,6FH,52H,4BH。当然,这里为了书写方便,采用的是16进制的数来表示。同理, mov al,’a’相当于mov al,61H, mov bl,’b’,相当于mov bl,62H,这里用到ASCII码就能想到计算机是如何将字符进行存储的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值