Вопросы по теме '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 просмотров
schedule
03.04.2022
Беззнаковая арифметика и целочисленное переполнение
Я пытаюсь понять арифметическое переполнение. Предположим, у меня есть следующее,
unsigned long long x;
unsigned int y, z;
x = y*z;
y*z может привести к целочисленному переполнению. Устраняет ли приведение одного из операндов к unsigned...
1928 просмотров
schedule
15.04.2022
Есть ли другой способ вычисления побитовых логических операций?
Я изучаю побитовые логические операции (И, ИЛИ и т.д.). Например.
15 И 24 можно рассчитать следующим образом.
преобразовать заданные числа в двоичную форму.
01111 И 11000
Выполните побитовую операцию И над каждым битом обоих...
160 просмотров
schedule
30.04.2022
Передача целых чисел произвольного размера из Пролога в C
Прямо сейчас я изучаю, как связать SICStus Prolog с кодом C.
Я хотел бы иметь/использовать/увидеть реализацию C «веса Хэмминга» целых чисел произвольного размера в SICStus Prolog версии 4.
Мне кажется, что мне нужны функции C для проверки типов...
399 просмотров
schedule
04.06.2022
Альтернативная форма для операции по модулю в сборке 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 просмотров
schedule
14.09.2022
Преобразование частей [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 просмотров
schedule
16.01.2023
Побитовые операции для реализации логического сдвига вправо
Итак, я пытаюсь решить это домашнее задание, и я застрял с этой конкретной проблемой в течение нескольких часов и не могу понять ее. Я чувствую, что я так близко! Но потом я что-то меняю в коде и что-то еще не так..
/*
* logicalShift - shift x...
1390 просмотров
schedule
03.04.2023
Может ли каламбур типа, подписанный для целых чисел без знака, ускорить проверку границ, устранив необходимость сравнения ›=?
Скажем, у меня в программе был действительно критичный к производительности цикл, в котором мне нужно проверить, находится ли точка внутри прямоугольника, но во время компиляции я знаю, что нижняя граница всегда будет равна 0, как показано ниже: (x...
566 просмотров
schedule
08.07.2023
Как получить количество чисел в 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 просмотров
schedule
15.12.2022