delphi基础问题(50分)

  • 主题发起人 主题发起人 ejb
  • 开始时间 开始时间
E

ejb

Unregistered / Unconfirmed
GUEST, unregistred user!
function CharToHex( c:char):integer;
begin
if(c >= 'a') and (c <= 'f') then
result:= c - 'a' + 10;
if( c >= 'A') and (c <= 'F') then
result:= c - 'F' + 10;
if( c >= '0') and (c <= '9') then
result:= c - '0';
result:= 0;
end;
以上代码为什么编译错误?
另外在c++builder 中函数_istxdigit什么功能在delphi中有同样功能的函数ma?
 
function CharToHex( c:char):integer;
begin
if(c >= 'a') and (c <= 'f') then
result:= (ord(c)-ord('a') + 10);
if( c >= 'A') and (c <= 'F') then
result:= ord(c) - ord('F') + 10;
if( c >= '0') and (c <= '9') then
result:= ord(c) - ord('0');
end;
 
你是C习惯
pascal 字符性不能直接运算
 
好象 是这么回事
 
有必要这么写么?把Object Pascal的精髓都丢了,好好看看 in的用法
例子:
if c in ['a','b','c'] then
 
你可以用case语句,
function CharToHex( c:char):integer;
begin
case c of
'a'.. 'f': result:= c - 'a' + 10;
'A'..'F': result:= c - 'F' + 10;
'0'..'9': result:= c - '0';
else
result:= 0;
end;
end;
 
是啊!字符型量与整数型变量不批配!
 
楼主说的对,主要是不匹配
 
感谢:leizengzheng!
再问一下,delphi中有没有16进制转10进制的函数?
 
十六制转十进制:
StrToInt('$0A');
在字符串前加'$'或'0x'
 
if c in ['a'..'f'] then
//字符型在DELPHI中是一种有序集合,所以可以写作['a'..'f']形式
result:= (ord(c)-ord('a') + 10);
if c in ['A'..'F'] then
result:= ord(c) - ord('F') + 10;
if c in ['0'..'9'] then
result:= ord(c) - ord('0');
case语句在DELPHI中只能使用整形和枚举型变量!
》》delphi中有没有16进制转10进制的函数?
在计算机的内部,数字以10进制和16进制存在有什么区别吗?
如果你要输出成16进制或10进制表示的字符串,用FORMAT函数不就可以了。
 
请问delphi中PSafeArray如何使用?
 
多人接受答案了。
 
后退
顶部