2

文字列を循環して文字の整数値を合計するプログラミング割り当てに問題があります。次のコードが示すように。ここで、このサブルーチンに文字列を渡します。たとえば、与えられた

num := '8888';

期待される出力は

32

結果の出力は

-12

Linux 環境で fpc パスカル コンパイラを使用しています。なぜこれが起こっているのかについての洞察は大歓迎です

   procedure subRoutine1(num : string);
   var
     i : byte;
     value : integer;
     sum : integer;
   begin
     sum := 0;
     for i := 0 to length(num) do
     begin
       value := Integer(num[i]) - 48;
       sum := sum + value;
     end;
     writeln(sum);
   end; 
4

1 に答える 1