急:如何表示16进制,如何表示八进制,如何表示一个二进制?在线等待(50分)

  • 主题发起人 主题发起人 黑影
  • 开始时间 开始时间
如在C中表示16进制:ox1d
那么Delphi如何表示?
有答案立结
 
在数字前面加"$"
 
1.IntToHex()以及相应的函数可以将十进制位数转换为十六进制,不过转换后数字也是字符串型;
自己定义十六进制用$;另外,还有十六进制到二进制的函数,查inttohex()相关函数就可以得到。
2.八进制的转换好像要自己写了,:(
3.十进制转换为二进制:
function dectobin(i:integer):string;
??var
??j:integer;
??s:string;
??begin
??j:=i;s:=' ';
??while j>=2 do
??begin
??if (j mod 2)=1 then
??begin
??s:='1'+s;
??j:=j div 2;
??end
??else
??begin
??s:='0'+s;
??j:=j div 2;
??end;
??end;
??s:=chr(ord('0')+j) + s;
??Ten2Two:=s;
??end;
??function Two2Ten(k:string):integer;
??var
??i,j,t:integer;
??s:char;
??begin
??t:=1;
??j:=length(k);j:=0+(ord(k[j])-ord('0'))*t;;
??for i:=length(k)-1 downto 1 do
??begin
??s:=k;t:=t*2;
??j:=j + ((ord(s)-ord('0'))*t);
??end;
??Two2Ten:=j;
??end;
 
其实可以自己写通用的数值转换函数
 
简单的二进制:比如是0x10h,可以var i:byte
i:=byte($16);
16进制:s:string
s:=inttohex(16);
 
黑影的意思应该说是怎么在代码里面表达进制
就像汇编的
11111111B (二进制)
0FFH (十六进制)
 
Delphi的十六进制是$FF,二进制我曾经找了很多书,就差Pascal的教科书了,
确实找不到,不过我觉得应该在Pascal的教科书有说的,否则这个Pascal也太水了。[:)]
 
>>>黑影的意思应该说是怎么在代码里面表达进制
>>>就像汇编的
>>>11111111B (二进制)
>>>0FFH (十六进制)
对,现在我知道直接表示十六进制用$ ,那么请问八进制与二进制
我不想转换,直接表示,行得通吗?
谢谢
 
//对,现在我知道直接表示十六进制用$ ,那么请问八进制与二进制
很遗憾的告诉你,不行:(
 
八进制真真的没有办法吗?
 
后退
顶部