我正在创建一个将二进制数转换为十进制数的项目。这是代码:
program binerdesimal;
uses crt;
var
p, d, i, l, pow, int:integer;
x:real;
y:integer;
b:string;
begin
readln(b);
d:=0;
for i:=1 to length(b) do
begin
l:=length(b);
l:=l - 1;
pow := power(2, l);
int := val(b[i], x, y);
d := d + (int * pow);
end;
writeln(d);
readln;
end.
输入数字是b,b本身是一个字符串,因为我想访问二进制数的索引。示例:1011然后b [1] = 1; b [2] = 0; b [3] = 1; b [4] = 1. 1011的十进制数是(1 * 2 ^ 3)+(0 * 2 ^ 2)+(1 * 2 ^ 1)+(1 * 2 ^ 0)
如果我使用b作为整数,则不能。
我使用val将字符串转换为整数但出现错误: 错误:不兼容的类型:使用Dev-Pascal在Pascal中获得“VOID”预期的“LONGINT” 指着:
int := val(b[i], x, y);
我的代码出了什么问题?