十六进制转化成二进制的问题

ssson ssson 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
function T16210(k: string): integer; //十六进制字符串转换为十进制数
begin
result := StrtoInt('$' + k);
end;


function T1022(i:integer):string; //10进制转2进制
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;
result := s;
end;

procedure TForm1.Button1Click(Sender: TObject);
var str:string;
begin
str:=inttostr(T16210(edit1.Text));
edit1.Text:= str;
end;

输入小一点的数字比如 f,ff,1234,abc,都可以正常转化
可是我要转化的是比较大的数字.

比如以下几组数字,
要转化的16进制数
8524B5C8
8524B5C7
8524B5C6
转化结果(明显就不对)
-2061236984
-2061236985
-2061236986


这是什么原因了,得用什么办法解决啊?
...全文

相关推荐

评论 18
收藏 已收藏
分享
返回顶部