用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
;----------------------------------------------------------------------
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
悬赏分: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
;----------------------------------------------------------------------
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
相关文章推荐
- 【C语言】从标准输入读取字符,并把它们写到标准输出,除了 大写字母转换成小写字母之外,其他的原样输出。
- c语言从键盘中输入一串字符串,将字符中的大写转化成小写字母,将小写字母转换成大写字母,以*号键结束
- C语言从键盘输入一个十进制数将其转换为任意进制数输出
- 从键盘上输入一个字符,如果是小写字母,则转换成大写字母输出。其他的则不变
- 【c语言】从键盘输入BOY三个字符,然后把它们输出到屏幕
- 从键盘上输入一个字符,如果它是小写字母,则把它转换成大写字母输出;否则,直接输出。
- c语言:从键盘输入BOY三个字符,然后把它们输出到屏幕。
- C语言:输入英文句子,将所有单词首字符转换成大写后输出
- c语言:从键盘输入BOY三个字符,然后把它们输出到屏幕。
- c语言: 键盘输入一个n个字符的串,然后按字母表顺序输出这n个字符
- C语言:从键盘输入一个字符串,以感叹号!作为结束标志,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件test中保存。
- java--IO流-LineNumberReader,读取键盘录入,字符字节流转换,改变标准输入输出设备,异常的日志信息,系统信息
- C语言 编写一个程序从标准输入读取字符,并把他们写到标准输出。除了大写字母转换成小写字母之外,其他的原样输出。
- C语言编程,键盘输入一个字符,输出其类型
- 【C语言】编写一个程序从标准输入读取字符,并把他们写到标准输出。除了大写字母转换成小写字母之外,其他的原样输出。
- C语言 编写一个程序从标准输入读取字符,并把他们写到标准输出。除了大写字母转换成小写字母之外,其他的原样输出。
- 【c语言】编写一个程序从标准输入读取字符,并把他们写到标准输出。除了大写字母转换成小写字母之外,其他的原样输出
- 从键盘输入某个十进制小数或整数,转换成对应的二进制小数并输出。 (查询十进制小数转换成二进制小数的算法,使用循环来实现。 最多保留小数位后7位数字即可)算法
- 参考例4.2将小写字母从键盘输入转换为大写字母及其十进制ASCII值从屏幕输出
- C语言实验——单个字符输入和输出(顺序结构)