delphi10 2进制负数转10进制
时间: 2023-11-28 09:49:25 浏览: 56
在 Delphi 中,可以使用 StrToInt 函数将二进制字符串转换为十进制整数。但是,对于负数的情况,需要先将其转换为补码形式,再进行转换。
以下是将一个8位二进制补码字符串转换为十进制整数的示例代码:
```delphi
function BinToDec(const BinStr: string): Integer;
var
Bits, i: Integer;
begin
Bits := Length(BinStr);
Result := 0;
// 如果是负数,则先将其转换为补码形式
if BinStr[1] = '1' then
begin
for i := 1 to Bits do
if BinStr[i] = '0' then
BinStr[i] := '1'
else
BinStr[i] := '0';
Result := -1;
end;
// 将二进制字符串转换为十进制整数
for i := 1 to Bits do
if BinStr[i] = '1' then
Result := Result + (1 shl (Bits - i));
end;
```
使用示例:
```delphi
var
BinStr: string;
DecNum: Integer;
begin
BinStr := '10000010'; // 补码形式的负数 -126
DecNum := BinToDec(BinStr); // 转换为十进制整数 -126
end;
```
阅读全文