Вопросы по теме 'integer-arithmetic'

Определяется ли поведение беззнакового целочисленного вычитания?
Я наткнулся на код человека, который, кажется, полагает, что существует проблема с вычитанием беззнакового целого числа из другого целого числа того же типа, когда результат был бы отрицательным. Так что такой код будет неправильным, даже если он...
111442 просмотров
schedule 23.11.2021

Почему divMod округляет деление, а не гарантирует положительный остаток?
теорема Евклида о делении , с которой знакомы большинство студентов-математиков и Хаскеллеров, утверждает, что Для заданных двух целых чисел a и b, где b = 0, существуют уникальные целые числа q и r такие, что a = bq + r и 0 r ‹ |b|. Это...
396 просмотров
schedule 16.03.2022

Проверка переполнения в знаковых сложениях и абелевых группах
Я читал о том, почему следующий код глючит: int tadd_ok ( int x, int y ) { int sum = x + y; return ( sum - x == y ) && ( sum - y == x ); } Объяснение заключалось в том, что сложение дополнения до двух образует абелеву...
406 просмотров

Беззнаковая арифметика и целочисленное переполнение
Я пытаюсь понять арифметическое переполнение. Предположим, у меня есть следующее, unsigned long long x; unsigned int y, z; x = y*z; y*z может привести к целочисленному переполнению. Устраняет ли приведение одного из операндов к unsigned...
1928 просмотров

Есть ли другой способ вычисления побитовых логических операций?
Я изучаю побитовые логические операции (И, ИЛИ и т.д.). Например. 15 И 24 можно рассчитать следующим образом. преобразовать заданные числа в двоичную форму. 01111 И 11000 Выполните побитовую операцию И над каждым битом обоих...
160 просмотров

Передача целых чисел произвольного размера из Пролога в C
Прямо сейчас я изучаю, как связать SICStus Prolog с кодом C. Я хотел бы иметь/использовать/увидеть реализацию C «веса Хэмминга» целых чисел произвольного размера в SICStus Prolog версии 4. Мне кажется, что мне нужны функции C для проверки типов...
399 просмотров

Альтернативная форма для операции по модулю в сборке x86
Есть ли способ вычислить операцию мода без использования DIV или IDIV на языке ассемблера x86? Например, можно использовать DIV, чтобы взять остаток от деления. Но вместо того, чтобы использовать DIV, есть другие варианты?
827 просмотров
schedule 02.07.2022

Арифметическая ошибка Фортрана
У меня интересная проблема с фортраном. А именно, кажется, что он делает последовательную арифметическую ошибку, когда пытается умножить 774840977 на 3 и добавить единицу, он выводит -1970444364, что, очевидно, не является правильным ответом....
371 просмотров
schedule 29.07.2022

Возведение числа в большую степень
Мне дано число 3 и переменная «n», которая может достигать 1 000 000 000 (миллиард). Я должен напечатать ответ 3^n modulo 100003 . Я пробовал следующее: Я пытался использовать функцию std::pow(3,n) , но она не работает для больших показателей...
243 просмотров

Преобразование частей [UInt8] в UInt8
Я пишу приложение для своего бакалаврского проекта в области электротехники и работаю с массивом байтов, который представляет собой шестнадцатеричную строку. Полученный массив байтов выглядит так: | синхронизировать | команда | длина |...
132 просмотров
schedule 17.09.2022

В целочисленной арифметике С# всегда ли a/b/c равно a/(b*c)?
Пусть a, b и c — небольшие положительные целые числа. Всегда ли a/b/c равно a/(b * c) с целочисленной арифметикой С#? Для меня в С# это выглядит так: int a = 5126, b = 76, c = 14; int x1 = a / b / c; int x2 = a / (b * c); Итак, мой вопрос:...
3995 просмотров
schedule 27.03.2023

Сложение двух чисел без использования оператора сложения
В c ~ есть оператор дополнения до 1. Это эквивалентно: ~a = -b + 1 Таким образом, a - ~b -1 = a-(-b + 1) + 1 = a + b - 1 + 1 = a + b Кто-нибудь может мне это объяснить?
189 просмотров
schedule 02.07.2023

Расчет диапазона примитивов Java
В Java, когда мы объявляем short number=1024*1024*1024; это даст ошибку времени компиляции, но short number=1024 * 1024 * 1024 * 1024; компилируется нормально. Почему это происходит?
1555 просмотров
schedule 24.10.2022

Почему x - y не переполняется для TMin в этой функции? Почему в этом случае функция неверна?
Я читал об этой функции: int tadd_ok ( int x, int y ) { int sum = x + y; int negative_overflow = x < 0 && y < 0 && sum >= 0; int positive_overflow = x >=0 && y >= 0 && sum < 0;...
774 просмотров

Побитовые операции для реализации логического сдвига вправо
Итак, я пытаюсь решить это домашнее задание, и я застрял с этой конкретной проблемой в течение нескольких часов и не могу понять ее. Я чувствую, что я так близко! Но потом я что-то меняю в коде и что-то еще не так.. /* * logicalShift - shift x...
1390 просмотров

Может ли каламбур типа, подписанный для целых чисел без знака, ускорить проверку границ, устранив необходимость сравнения ›=?
Скажем, у меня в программе был действительно критичный к производительности цикл, в котором мне нужно проверить, находится ли точка внутри прямоугольника, но во время компиляции я знаю, что нижняя граница всегда будет равна 0, как показано ниже: (x...
566 просмотров

Как получить количество чисел в int и как разделить число, не создавая строку
У меня есть число вроде 601511616 Если длина всех чисел кратна 3, как можно разделить число на массив без создания строки Кроме того, как я могу считать числа в int, не создавая строку? Изменить: есть ли способ просто разделить число, зная,...
204 просмотров
schedule 06.01.2023

Использование * для умножения двоичных чисел дает мне только сложение, почему? (Код здесь)
Я изучаю операции с "+", "-" и "*", сложение и вычитание работает хорошо, но умножение дает мне только сложения, ссылка на код: http://www.edaplayground.com/x/NvT Я проверил код, не могу понять, что происходит. Я дал достаточно места (бит)...
1019 просмотров
schedule 05.07.2023

Когда RHS имеют отрицательное целое число и целое число без знака за пределами диапазона целых чисел в арифметической операции
Прошу прощения за название, так как мне нужно было как-то найти уникальное. Рассмотрим код ниже: #include<stdio.h> int main(void) { int b = 2147483648; // To show the maximum value of int type here is 2147483647 printf("%d\n",b);...
109 просмотров
schedule 14.10.2022

Как построить оператор сравнения (компаритор) в арифметической схеме
Я пытаюсь преобразовать базовую программу в арифметическую схему. Я застрял на этапе преобразования оператора «больше чем» в арифметическую схему. Чтобы быть конкретным, я не знаю, как преобразовать следующее в арифметическую схему (где x, y...
304 просмотров