您的位置:首页 > 编程语言 > C语言/C++

用c语言输入键盘上的字符后转换成十六进制输出

2011-07-08 12:20 931 查看
用c语言输入键盘上的字符后转换成十六进制输出
悬赏分:10 | 提问时间:2010-9-13 10:26 | 提问者:745922085 | 问题为何被关闭
其他回答 共3条

#include <stdio.h>
#include <conio.h>//getch()的头文件

int main()
{
char c;
printf("请输入一个字符:");
c = getch();//getch()获取输入的字符, 输入之后立即处理,不需要按Enter之类的。
printf("十六进制:%x\n", (int)c);//(int)c,把c转换为int型.%x,输出格式为十六进制
return 0;
}

回答者: lynwey | 二级 | 2010-9-13 10:37

;----------------------------------------------------------------------
;程序名称:DIS_DEC
;功能:通过DOS功能调用显示十进制数最大65535
;入口参数:AX
;出口参数:无
;临时空间:CX
;调 用:HEXTOASCII
;作 者:
;创建日期:2009-11-06
;创建时间:23:12
;程序版本:
;----------------------------------------------------------------------
DIS_DEC PROC
MOV DX, 0
MOV BX, 10000
DIV BX ;(0,AX)/10000,取商
MOV CX, DX ;CX临时保存余数
CALL HEX1TOASCII ;转换为ASCII码
MOV DL, AL ;2号功能调用单字符显示万位数,待显示字符ASCII码在DL中
MOV AH, 2 ;2号功能调用
INT 21H ;INT 21H进行调用

MOV DX, 0
MOV BX, 1000
MOV AX, CX
DIV BX ;(0,CX)/1000,取商
MOV CX, DX ;CX临时保存余数
CALL HEX1TOASCII ;转换为ASCII码
MOV DL, AL ;显示千位数
MOV AH, 2
INT 21H

MOV BL, 100
MOV AX, CX
DIV BL ;(AX)/100,取商
MOV CH, AH ;CH临时保存余数
CALL HEX1TOASCII ;转换为ASCII码
MOV DL, AL ;显示百位数
MOV AH, 2
INT 21H

MOV BL, 10
MOV AH, 0
MOV AL, CH
DIV BL ;(0,CH)/10,取商
MOV CH, AH ;CH临时保存余数
CALL HEX1TOASCII ;转换为ASCII码
MOV DL, AL ;显示十位数
MOV AH, 2
INT 21H

MOV AL, CH
CALL HEX1TOASCII ;转换为ASCII码
MOV DL, AL ;显示个位数
MOV AH, 2
INT 21H

MOV DL, 0DH ;显示回车符
MOV AH, 2
INT 21H
MOV DL, 0AH ;显示换行符
INT 21H
RET
ENDP
;----------------------------------------------------------------------
;----------------------------------------------------------------------
;程序名称:HEX2TOASCII
;功能:2位十六进制数转ASCII码
;入口参数:AL
;出口参数:AX
;临时空间:CH:暂寸数据,CL:移位次数
;调 用:HEX1TOASCII:一位HEX转换ASCII码
;作 者:
;创建日期:2009-11-06
;创建时间:23:12
;程序版本:
;----------------------------------------------------------------------
HEX2TOASCII PROC
MOV CH, AL ;暂存数据
AND AL, 0F0H ;取高4位
MOV CL, 4
SHR AL, CL ;右移4位进行转换
CALL HEX1TOASCII ;转换高4位的ASCII码
MOV AH, AL ;保存结果
MOV AL, CH ;取原待转换数据
AND AL, 0FH ;取低4位数据
CALL HEX1TOASCII ;转换低4位的ASCII码
RET
ENDP
;----------------------------------------------------------------------
;----------------------------------------------------------------------
;程序名称:HEX1TOASCII
;功能:1位十六进制数转ASCII码
;入口参数:AL
;出口参数:AL
;临时空间:无
;调 用:
;作 者:
;创建日期:2009-11-06
;创建时间:23:12
;程序版本:
;----------------------------------------------------------------------
HEX1TOASCII PROC
CMP AL, 9
JBE BELOW9 ;小于等于9,加30H
ADD AL, 07H ;大于9,加37H
BELOW9: ADD AL, 30H
RET
ENDP
;----------------------------------------------------------------------

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐