进制转换(100分)

  • 主题发起人 主题发起人 hzjzxp
  • 开始时间 开始时间
H

hzjzxp

Unregistered / Unconfirmed
GUEST, unregistred user!
我有两个字符类型的变量
a := 'F';
b := 'A';
最终结果是
c := #$FA;//
请问我应该怎么转换?
 
不太明白你什么意思,如果'c'是String字符变量,那可以像下面代码那样。如果'c'是Integer变量,应该没有#$FA这种类型的整数吧?
var a,b,c:String;
begin
a := 'F';
b := 'A';
c := '#$' + a + b;
ShowMessage(c);
end;
 
不是这个意思,你这个是字符串连接了
 
不过,好像没有#$FA这样的整数吧?Delphi的整数表示方法该是$FA才对吧?
var a,b:String;
c:Integer;
begin
a := 'F';
b := 'A';
c := (StrToInt('$'+a) shl 4) or (StrToInt('$'+b))
// c = $FA;
ShowMessage(IntToHex(c,2))

end;
 
#这个符号应该是多余的
 
var
a,b,c,d:String;
begin
a := 'F';
b := 'E';
c:=IntToHex((StrToInt('$'+a) shl 4) or (StrToInt('$'+b)),2);
d:=#$FE;
showmessage(c);
showmessage(d);
end;
我想要是这种效果
 
//我明白了,不过我前面给你的代码已经是正确的了。
var a,b:String;
d,c:Char;
begin
a := 'F';
b := 'A';
d := #$FA
// 按你的要求将d赋值为#$FA的值。
c := Char((StrToInt('$'+a) shl 4) or (StrToInt('$'+b)))
// c = $FA;
// 从下面的对比就可以看到c的值和d的值是一样的,也就是进制转换是成功的!
if c = d then
ShowMessage('进制转换成功,c和d的值是相等的!')
else
ShowMessage('进制转换不成功,c和d的值不相等!');
end;
 
结贴,再次感谢 [iaopei]。
 
后退
顶部