能力值:
( LV4,RANK:50 )
|
-
-
2 楼
ASCII码本来就是表示字符的啊,还要转换成什么字符呢?
如下
ASCII 字符
0x30 '0'
0x31 '1'
0x32 '2'
..............
|
能力值:
( LV9,RANK:210 )
|
-
-
3 楼
想实现的功能类似于Delphi的Char
如Char(65),结果为字符e
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
你的意思是说把字符输入然后显示它的ASCII,比如:
输入e 然后显示69H
如果是这样的话,输出的时候用格式%lx,就可以了!
|
能力值:
( LV9,RANK:210 )
|
-
-
5 楼
我想是这样的,输入65,显示的是e,如果输入的是35,则显示的是5
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
哦,知道了!
输入的是按字符串处理的,‘65’,在计算机中表示出来后就是6和5的ASCII码值。
需要把ASCII转换为数值65h。
'6'的ASCII值为36h,
'5'的ASSCII值为35h,
(36h-30h)*10h+(35h-30h)
然后把值输出就好了!
|
能力值:
( LV12,RANK:360 )
|
-
-
7 楼
不用转换 35本来就是'5'
|
能力值:
( LV12,RANK:360 )
|
-
-
8 楼
mov eax,35
mov eax,'5'
两个是一样的
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
这几天刚好些了个C语言的,自己看着改一下吧。
//0xCC项只用于占位
static char TableA[] = {0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80,0x90,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xA0,0xB0,0xC0,0xD0,0xE0,0xF0};
static char TableB[] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F};
int main(int argc,char *argv[])
{
//检查参数合法性等等,略
for (i = 1; i < argc; i++)
{
data = TableA[argv[i][0] - '0'] + TableB[argv[i][1] - '0'];
printf("%c",data);
}
printf("\n\n");
return 0;
}
要注意,如果是数字,就是是ASCII-30,如果是大写字母,就要减去31,如果是小写字母要减51,要么就弄上六个if,我直接选择了查表。
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
如果是在计算机中的表示35,就不用转换。
要是输入到计算机中的话是字符串‘35’,表示成33h,35h,
|
能力值:
( LV3,RANK:20 )
|
-
-
11 楼
做一个字母表,然后用汇编的查表指令不就解决了
这貌似为课本上的一道习题
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
这里是转ASCII码的一个过程,接收为AX,当然也可以是AL,思想是先show出high byte,再show出low byte,供参考
output_ax_hex proc
push ax
mov al,ah
call output_al_hex
pop ax
output_al_hex::
push ax
shr al,4
call output_nibble_hex
pop ax
output_nibble_hex::
and al,0fh
add al,30h
cmp al,3ah
jc short @f ;0-9(30h-39h)
add al,7 ;A-F(41h-46h)
@@:
call display_char
ret
output_ax_hex endp
display_char proc
push ax
push bx
mov ah,0eh
mov bx,000fh
int 10h ;VBIOS write TTY
pop bx
pop ax
ret
display_char endp
参考资料:http://topic.csdn.net/u/20080926/17/419571d8-e18d-4345-88f4-b376970af15c.html
|