16进制转10进制(68分)

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

Unregistered / Unconfirmed
GUEST, unregistred user!
16进制 10进制
------------------
C842 1
4843 2
9643 3
C843 4
FA43 5
1644 6
2f44 7
4844 8
6144 9
7a44 10
8944 11
9644 12
a244 13
af44 14
bb44 15
c844 16
d444 17
e144 18
ed44 19
fa44 20
.... ..
.... ..

想问一下左边的16进制数是通过怎样的公式转变成右边的10进制数
我尝试过用补码,反码来转变都推不出它的函数公式。
 
{=================================================================
功 能: 16进制字符转换为10进制
参 数: Value 16进制
返回值: 10进制数字
=================================================================}
Function HexToDec(Const Value: String): Integer;
Const
HEX: Array['A'..'F'] Of Integer = (10, 11, 12, 13, 14, 15);
Var
Str: String;
Int: Integer;
I: Integer;
Begin
Str := UpperCase(Value);
Int := 0;
For I := 1 To Length(Str) Do
If Str < 'A' Then
Int := Int * 16 + Ord(Str) - 48
Else
Int := Int * 16 + HEX[Str];

Result := Int;
End;
 
就拿的第一行的数据C842代入此公式 不能得出 1


Int := Int * 16 + Ord(Str) - 48

(((int*16+ord("C")-48)*16+ord("8")-48)*16+ord("4")-48)*16++ord("2")-48)<>1
 
这是加密阿!不是进制转换阿!
 
那怎么才能知道它的加密公式
 
好像是4的倍数,1,4,16;2,8,32;,3,12,48;
 
我也觉得好象和4的倍数有关连。
 
谢谢cuit兄的提醒
 
你先把十六进制的数高低位交换后,相减看看,应该有些规律了;447a-4461,4461-4448
 
谢谢bbscom兄
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
916
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部