Pascal:Val()函数返回负数

路易斯·门德斯

我一直试图将字符串转换为整数,并且val()过程返回负数,我认为这是因为字符串太大(没有意义,字符串的长度约为8),所以我尝试手动进行转换,它返回的数字与val()返回的数字完全相同:

program a;
uses crt;

var
    text:string;
    number, code:integer;

begin
    number:=0;
    
    text := '3142436';
    val(text, number, code);
    
    writeln('Number: ', number);
    writeln('Code: ', code);
    
    
end.

它返回:

Number: -3292
Code: 0

进行自己的转换过程:

program a;
uses crt;

var
    numero, cod:integer;
    info:string;
    i:char;

begin
    cod:=0;
    numero:=0;
    info:='3142436';

    for i in info do
        begin
            case i of
                '0': cod:= 0;
                '1': cod:= 1;
                '2': cod:= 2;
                '3': cod:= 3;
                '4': cod:= 4;
                '5': cod:= 5;
                '6': cod:= 6;
                '7': cod:= 7;
                '8': cod:= 8;
                '9': cod:= 9;
            end;
            numero := (numero * 10) + cod;
            write('Now: ', numero);
            writeln(' (Adding ',cod, ')');
        end;
    
    writeln('Result: ', numero);
    
end.

返回完全相同:

Now: 3 (Adding 3)
Now: 31 (Adding 1)
Now: 314 (Adding 4)
Now: 3142 (Adding 2)
Now: 31424 (Adding 4)
Now: -13437 (Adding 3)
Now: -3292 (Adding 6)
Result: -3292

我做错什么了吗?

安德烈亚斯·瑞布兰德(Andreas Rejbrand)

您显然使用的是16位整数类型。

3142436是$ 2FF324,它被截短为一个单词是$ F324。解释为有符号整数,十进制为-3292。

有很多Pascal实现。您没有指定要使用的Integer哪个,但显然是当前编译器设置的16位整数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

mysql mod函数返回负数

来自分类Dev

大输入时阶乘函数返回负数

来自分类Dev

为什么main函数不能返回负数?

来自分类Dev

阶乘函数(Python)中返回的负数

来自分类Dev

接受向量并返回负数和位置的函数

来自分类Dev

jquery val 返回 jquery 函数

来自分类Dev

从函数返回字符串(VAX PASCAL)

来自分类Dev

C++ 梯形积分函数在不应该返回负数时返回负数

来自分类Dev

查找最接近零而不返回负数的函数-R

来自分类Dev

如何从递归函数delphi / pascal返回布尔值

来自分类Dev

GetBytes()返回负数

来自分类Dev

C模返回负数

来自分类Dev

屏幕宽度返回负数

来自分类Dev

在r中建立立方根函数,该函数返回负数和正数

来自分类Dev

Clojure:在嵌套哈希图中搜索val并返回包含val的键序列的函数

来自分类Dev

Pascal Ackermann函数被误解

来自分类Dev

Pascal中的抽象函数

来自分类Dev

pascal 中的函数步骤

来自分类Dev

Color.parseColor返回负数

来自分类Dev

Python rowcount返回负数1

来自分类Dev

C-read()返回负数

来自分类Dev

printf何时会返回负数?

来自分类Dev

Python curses getmouse返回负数

来自分类Dev

Excel:时间 * 24 返回负数?

来自分类Dev

Pascal-如何从该类中的函数返回一个类的数组?

来自分类Dev

如何使用函数式编程返回列表中的所有正数和第一个负数?

来自分类Dev

函数 sumDigits; 如何让这个函数使用负数?

来自分类Dev

val()返回[object Object]

来自分类Dev

多选 val() 返回 null