2010-12-31 3 views
1

Я пытаюсь использовать приведенные ниже коды, чтобы получить значение abs длинного целого числа;получить значение abs длинного длинного целого

long long v=abs(originalValue); 

Он работает, как я ожидал, пока значение V не превышает 1073741824 (1G)

Если v является 2147482648, абс (v) является -2147482648.

Если v - 10737418240, abs (v) - -2147482648.

Я не понимаю, какие причины произошли.

Добро пожаловать любой комментарий

Благодарности

Interdev

ответ

3

Использование llabs() вместо:

long long v = llabs(originalValue); 
1

abs принимает Int в качестве аргумента, на протяжении длительного использования llabs

+0

+ 1 для ссылки на страницу руководства. –

Смежные вопросы