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

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

悬赏分:10 | 提问时间:2010-9-13 10:26 | 提问者:745922085 | 问题为何被关闭

其他回答 共3条

#include

#include //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

;----------------------------------------------------------------------

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值