
这里要分清楚,你ascii码 是10进制的数字序列 还是 16进制的数字序列?
如果是16进制的数字序列,只需要每一位减30h或37h得到对应的16进制数位,再通过左移4位 与转换下一位相或即可。如此循环。
如果是10进制的数字序列,则需要每一位减30h得到对应的10进制数位,通过乘10再相加转换的下一位即可。如此循环。
任务代码为:
#include<stdioh>
main()
{
char w;
printf("请输入一个字母:");
scanf("%c",&w);
printf("与这个字母对应的ASCII码是:%d\n",w);
}
英文字母是字符型,ASCII码十进制的,因此只需要将字符型转换为十进制,在输出函数的时候强制转换类型。
扩展资料:
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 个特殊符号字符、外来语字母和图形符号。
参考资料:
1、首先,定义两个字符变量z和Z,用以保存转换的字符。
2、接着,定义一个整型变量n,保存用来转换的ASCII码。
3、把n的值赋给变量z,实现字符的转换。
4、输出窗口中,输出将ASCII码转换为的字符。
5、给变量n重新赋值,其值为大写字母的ASCII码。
6、将ASCII码转换为对应的大写英文字母,并在输出窗口中输出。
7、运行程序,代码中输入的ASCII码,成功转换为相应的大小写字母。
4ch中断是退出程序,好像没有输出数字的中断,
02是输出一个字符,9是输出字符串,而且你的程序应该只是把字符串转换程序数字,并没有把十进制转换成二进制。这样试试
LOOP
LOOP1
MOV
[DI],AX
MOV
AH,9
INT
21H
MOV
AH,4CH
INT
21H
;ascII to binary
data segment
a1 db '87'
len dw $-a1
b1 dw 0
data ends
code segment
assume cs:code, ds:data
start:
mov ax,data
mov ds,ax
lea si,a1
lea di,b1
mov cx,len
call asc2bin
mov ax,4c00h
int 21h
;si-source ascii string
;di-binary's variable
;cx-ascii's length
;
asc2bin proc near
mov bl, 10
L0:
mov ax, [di]
mul bl
mov dl, [si]
and dl, 0Fh
add al, dl
adc ah,0
mov [di],ax
inc si
loop L0
ret
asc2bin endp
code ends
end start
以上就是关于大学汇编语言程序设计题 用汇编语言编写把ASCII转化为十六进制的程序全部的内容,包括:大学汇编语言程序设计题 用汇编语言编写把ASCII转化为十六进制的程序、ASCII码是怎么转化为十进制的、如何将ASCII转换为大小写字母等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)