Описание тега integer-overflow

Целочисленное переполнение происходит, когда результат операции превышает максимальное значение, которое может быть представлено базовым целочисленным типом.
1 ответ

Почему переполнение (-2147483648) происходит в коде?

Я вижу довольно странную проблему. Каким-то образом, с моим кодом ниже, я вижу, как выводится отрицательное число, как показано ниже в моем holder переменная. Я не уверен, почему это происходит. -2147483648 days -2147483648 hours -2147483648 minutes…
26 июл '15 в 21:48
5 ответов

Являются ли целые числа фиксированной ширины дистрибутивными по умножению?

Для трех n-битных целых чисел со знаком a, b, а также c (например, 32-разрядный), всегда ли это правда, что a * (b + c) == (a * b) + (a * c)с учетом целочисленного переполнения? Я думаю, что это не зависит от языка, но если это не так, меня особенно…
07 янв '13 в 03:05
36 ответов

Неожиданные результаты при работе с очень большими целыми числами на интерпретируемых языках

Я пытаюсь получить сумму 1 + 2 + ... + 1000000000, но я получаю забавные результаты в PHP и Node.js. PHP $sum = 0; for($i = 0; $i <= 1000000000 ; $i++) { $sum += $i; } printf("%s", number_format($sum, 0, "", "")); // 500000000067108992 Node.js va…
6 ответов

(A + B + C) ≠ (A + C + B) и переупорядочение компилятора

Добавление двух 32-битных целых может привести к переполнению целого числа: uint64_t u64_z = u32_x + u32_y; Этого переполнения можно избежать, если одно из 32-разрядных целых чисел сначала приводится или добавляется к 64-разрядному целому числу. uin…
25 июл '16 в 09:08
6 ответов

Объяснение безопасного среднего из двух чисел

Всякий раз, когда мне нужно усреднить два числа для алгоритма, такого как двоичный поиск, я всегда делаю что-то вроде этого: int mid = low + ((high - low) / 2); Недавно я видел другой способ сделать это в этом посте, но я не понимаю этого. Он говори…
01 окт '13 в 01:04
2 ответа

1000000000 * 3 = -1294967296?

Я не совсем понимаю! Сегодня 3 ноября DateTime DateTime = new DateTime(2010,11,3); long shazbot = 1000000000 * DateTime.Day; Shazbot выходит на -1294967296 Да???
03 ноя '10 в 14:12
0 ответов

Работа с 32-битной переливной сборкой x86 at&t

Как бороться с переполнением, если я не могу работать с 64-битными регистрами? это единственное условие. Вот пример кода: .data m: .long 3386449920 base: .long 483778560,225763328,109240320,26664960,413385 В start: у меня есть некоторые инструкции у…
23 апр '15 в 18:28
2 ответа

PHP идиома для счетчика неотрицательных целых

При попытке создать счетчик, который возвращается к 0, когда диапазон int исчерпан. По существу, 0, 1, ..., MAX_INT - 1, MAX_INT, 0, 1, ... Идиоматический C является x = ((x + 1) & MAX_INT); Но это не сработает в PHP, потому что int становится д…
18 дек '15 в 22:11
1 ответ

Исключение переполнения MIPS

Я прочитал несколько постов здесь об исключении переполнения для подписанного и неподписанного дополнения MIPS, но мне все еще не ясно. 1) Что означает исключение переполнения и когда оно возникает? 2) Когда переполнение игнорируется для неподписанн…
10 окт '16 в 04:59
5 ответов

Как можно использовать целочисленное переполнение?

У кого-нибудь есть подробное объяснение того, как можно использовать целые числа? Я много читал о концепции, и я понимаю, что это такое, и я понимаю переполнение буфера, но я не понимаю, как можно надежно изменить память или каким-то образом изменит…
26 май '10 в 14:00
8 ответов

Эффективное приведение без знака к подписи, исключающее поведение, определяемое реализацией

Я хочу определить функцию, которая принимает unsigned int в качестве аргумента и возвращает int конгруэнтный по модулю UINT_MAX+1 к аргументу. Первая попытка может выглядеть так: int unsigned_to_signed(unsigned n) { return static_cast<int>(n);…
1 ответ

VB.NET Работа с частью уравнения, создающей исключение переполнения

В качестве простого примера следующий код создает исключение переполнения: Sub Main() Dim x As Int16 = 2 ^ 10 Dim y As Int16 = 2 ^ 10 Dim z As Int16 z = CType(x * y / y, Int16) Console.WriteLine(z) Console.Read() End Sub При выполнении арифметики ок…
08 апр '16 в 00:56
2 ответа

Integer.MIN_VALUE разделить на -1

почему эта строка кода имеет значение?(я получаю неправильный ответ без него) if (dividend == Integer.MIN_VALUE && divisor == -1) { return Integer.MAX_VALUE; } Вопрос: Разделите два целых числа без использования умножения, деления и оператор…
21 авг '18 в 16:39
2 ответа

В PBKDF2 INT (i) подписан?

На стр. 11 RFC 2898 говорится, что для U_1 = PRF (P, S || INT (i)) INT (i) представляет собой четырехоктетное кодирование целого числа i, в первую очередь самый старший октет. Означает ли это, что я значение со знаком, и если так, что происходит при…
12 июл '17 в 05:09
0 ответов

Как записать численно в символ? Правильно, что бы обнаружить переполнения?

ПОЛНОСТЬЮ ВОССТАНОВИЛ ВОПРОС. Я хотел бы написать численно в целочисленный тип, не будучи уверенным, действительно ли это тип символа: char, wchar_t, char32_t и т.п. Рассмотрим следующий код: template <typename T> class MyInteger { T value; pu…
16 июл '15 в 16:25
4 ответа

C/C++ Отрицание переменной целочисленного типа со значением 0

Я хочу передать версию измененного знака некоторого значения в функцию. Я знаю, как проверить переполнение, если знак меняется, но я не знаю об этом одном случае. int apple( int ); int a = 0; apple( -a ); Это определенное поведение охватывается стан…
16 сен '13 в 21:46
1 ответ

CUDA большие входные массивы

Я новичок в CUDA, я работал над "алгоритмом сокращения". Алгоритм работает для любого размера массива менее 1<<24. Когда я использую массивы размером 1<<25, программа возвращает 0 в "общей сумме", что неверно. Сумма должна мне 2^25 РЕДАКТИРОВАТЬ cud…
07 янв '16 в 13:02
1 ответ

Напишите функцию, которая печатает каждую цифру n^100

Меня попросили написать функцию Java, которая принимает целое число, nи распечатывает значение n^100, Я понятия не имею, как подойти к этому. Я знаю, обычными средствами это переполнится как n растет. Ответы, такие как: 5.32 x 10^20 не принимаются Э…
16 сен '14 в 19:51
1 ответ

Есть ли предупреждение о переполнении интегральной константы в clang?

Рассмотрим следующие фрагменты: short x = 2000000000; short x = (short)2000000000; int x = 1000000000 * 1000000000; Можем ли мы получить предупреждение (/error) для них в Clang? Как? Начиная с какой версии? Спасибо, Киприан.
1 ответ

Swift: переопределение хэша NSObject без сбоя переполнения

Используя Swift 3, у меня есть некоторые NSObject подклассы, которые я перекрываю hash собственность и isEqual() функции для. (Я хочу, чтобы классы могли использоваться в качестве ключей в словаре, и я хочу, чтобы их массив мог быть отсортирован, но…
09 ноя '16 в 03:08