一个CASE OF的用法小问题,请看一看.(50分)

  • 主题发起人 主题发起人 逆水
  • 开始时间 开始时间

逆水

Unregistered / Unconfirmed
GUEST, unregistred user!
大家好,我在写一个掌上电脑的程序.其中有个要求要将一个字节(16进制的)两个字符的数(如12、34、AB、BB),转为二进制数可我下面写的这段程序为什么只把后面的一个字符转了,而前面的没转成呢.
VAR:
STROUTPUT:STRING;
S1:STRING;
n11:char;
FOR I:=1 TO 2do
S1:=COPY(EDIT1.TEXT,I,1);
N11=S1[1];
CASE N11 OF
'0':
STROUTPUT:=STROUTPUT+'0000' ;
'1':
STROUTPUT:=STROUTPUT+'0001' ;
'2':
STROUTPUT:=STROUTPUT+'0010' ;
'3':
STROUTPUT:=STROUTPUT+'0010' ;
'4':

STROUTPUT:=STROUTPUT+'0100' ;
'5':
STROUTPUT:=STROUTPUT+'0101' ;
'6':
STROUTPUT:=STROUTPUT+'0110' ;
'7':

STROUTPUT:=STROUTPUT+'0111' ;
'8':

STROUTPUT:=STROUTPUT+'1000' ;
'9':
STROUTPUT:=STROUTPUT+'1001' ;
'A':
STROUTPUT:=STROUTPUT+'1010' ;
'B':
STROUTPUT:=STROUTPUT+'1011' ;
'C':
STROUTPUT:=STROUTPUT+'1100' ;
'D':
STROUTPUT:=STROUTPUT+'1101' ;
'E':
STROUTPUT:=STROUTPUT+'1110' ;
'F':
STROUTPUT:=STROUTPUT+'1111' ;
end;
begin
edit2.text:=stroutput;//可我发现如EDIT1中输入12,EDIT2中只出现'0001',只转了2的没转1的,输入AB,只转了B的,EDIT2中显示:'1011'.请问我那里写的有问题啊.
end;
在线等候。
 
FOR I:=1 TO 2do
這個循環都沒有把下面的一大段括進來,只環了S1:=COPY(EDIT1.TEXT,I,1);一句,當然不行嘍
 
STROUTPUT:STRING;
S1:STRING;
n11:char;
FOR I:=1 TO 2do
begin
//!!!!!! 在此加这一行,!!!1
S1:=COPY(EDIT1.TEXT,I,1);
N11=S1[1];
CASE N11 OF
'0':
STROUTPUT:=STROUTPUT+'0000' ;
'1':
STROUTPUT:=STROUTPUT+'0001' ;
'2':
STROUTPUT:=STROUTPUT+'0010' ;
'3':
STROUTPUT:=STROUTPUT+'0010' ;
'4':

STROUTPUT:=STROUTPUT+'0100' ;
'5':
STROUTPUT:=STROUTPUT+'0101' ;
'6':
STROUTPUT:=STROUTPUT+'0110' ;
'7':

STROUTPUT:=STROUTPUT+'0111' ;
'8':

STROUTPUT:=STROUTPUT+'1000' ;
'9':
STROUTPUT:=STROUTPUT+'1001' ;
'A':
STROUTPUT:=STROUTPUT+'1010' ;
'B':
STROUTPUT:=STROUTPUT+'1011' ;
'C':
STROUTPUT:=STROUTPUT+'1100' ;
'D':
STROUTPUT:=STROUTPUT+'1101' ;
'E':
STROUTPUT:=STROUTPUT+'1110' ;
'F':
STROUTPUT:=STROUTPUT+'1111' ;
end;
// begin
!!!!!!!!!!!!!这行去掉
edit2.text:=stroutput;//可我发现如EDIT1中输入12,EDIT2中只出现'0001',只转了2的没转1的,输入AB,只转了B的,EDIT2中显示:'1011'.请问我那里写的有问题啊.
end;
 
为什么看不到别人回的贴子呢.出什么问题了.
 
N11=S1[1];
你只转了低位,没转高位
 
而且如果你只是想把16进制转二进制,你大不必写这种程序了
 
后退
顶部