• Транспорт • Мода • Рецепты • Блоги • Охота • Путешествия • Спорт • Веселье • Своими Руками • IT • Знания
Мини-Игры
x

x
zakruti.com » ru » IT – Софт » Компьютерные Секреты
Как работают отрицательные числа - основы программирования

Как работают отрицательные числа - основы программирования

VKTwitterOK

содержание видео

Рейтинг: 4.0; Голоса: 1
КАК РАБОТАЮТ ОТРИЦАТЕЛЬНЫЕ ЧИСЛА. Любые данные в компьютере представляют собой двоичное число. Это все знают, но не все знают, в каком формате компьютер их хранит. Если целые положительные числа перевести в двоичный вид довольно просто, то с отрицательными числами у нас возникает много проблем, которые должны быть решены с помощью специальных форматов записи
Дата: 2023-03-12

Комментарии и отзывы: 20


В сумматорах дополнительный бит выносится как выход переноса (carry out. Соответственно, реализуют и вход переноса. Сумматор в итоге работает так Z = а + в + С. В процессорах выход переноса (он же является самым старшим дополнительным битом) подключают к биту регистра статуса процессора и реализуют две инструкции. Одна просто сложение, которая выводит перенос в регистр, если переполнение произошло. А вторая инструкция - сложение с учётом переноса. Она подаёт этот бит с регистра статуса на вход переноса сумматора. Таким образом производится сложение чисел, разрядность которых выше разрядности процессора.
Продемонстрировать это проще всего на ассемблере восьмибитного микроконтроллера AVR.
; A = 0x1020
; B = 0x3040
; Операнд А
LDI R16 0x20
LDI R17 0x10
; Операнд В
LDI R18 0x40
LDI R19 0x30
; Складываем младшие байты
ADD R16, R18
; Складываем старшие части с учётом переноса
ADC R17, R19
; Результат в регистрах R16 и R17

ответить

Важное дополнение насчёт флага переполнения.
На данный момент нет языка выше ассеблера, который поддерживал флаг переполнения. Сам флаг переполнения есть почти в каждой модели процессора, и нативный код его поддерживает. Но вот программисту он недоступен.
Для опроса флага переполнения придумана масса костылей, половина из них отваливается с новой версией компилятора.
Прикол, для ветерана Cи - новые операторы даже не вносились на голосование. Тишина.

ответить

Спасибо за очередной и очень полезный контент! Классно что рассказываешь какие были попытки реализации архитектуры для хранения отрицательных чисел, какие были изъяны и что придумали, чтобы их максимально минимизировать. Классно расширяет кругозор!
Поддерживаю тебя на патреоне, но в виду того, что со следующего месяца платежи с российский карт проходить не будут, какие есть еще способы поддержки? Будут ли работать карты виза на юмани?

ответить

Программу как то писал и долго понять не мог почему при сравнении переменных, программа показывала что -15 больше 3? Обнаружил, что нет никаких-, есть просто 15. Чуть позже написал метод с присвоением отрицательно знака числу. х=х-(х2.
ответить

Никто в интернете лучше не объясняет. Я перерыл все источники, но все равно не мог наглядно понять то, как именно увеличивается отрицательный диапазон на единицу (-128, а не -127. Просто огромный респект
ответить

На самом деле отрицательных чисел не существует, есть только положительные числа и есть операция вычитания. Иначе намажьте одну отрицательную колбасу на один отрицательный хлеб.
ответить

Любопытно. Недавно пересматривал видео, подумал, что не хочется их смотреть из-за интонации и общего контекста. Теперь же интонация изменилась, стало гораздо легче смотреть.
ответить

Отрицательных чисел нет. Невозможно исчеслять то чего не. Минус всего лишь направление если угодно. Минуснутых или плюсанутых нет, есть знак операции минус - вычитание.
ответить

Для меня самым интересным есть то, что я это все когда-то учил и, в принципе, знаю. Но сейчас это стало для меня немного понятнее и теперь мне лучше ясна эта тема. Спасибо
ответить

Столкнулся с темой отрицательных чисел в java, там нет беззнакового байта, а данные были именно в этом формате. Пришлось писать преобразование.
ответить

В компьютерных науках есть только две сложные проблемы аннулирование кэша, придумывание названий и ошибка на единицу Леон Бамбрик: )
ответить

Я знал только про прямой код, но теперь понимаю, что всё устроено чуть сложнее и удобнее. Спасибо за интересное качественное видео!
ответить

Бляяяя, я как будто новое анимэ для себя открыл и просмотрел все сезоны разом, а теперь меня ломает пока не выйдет новая серия
ответить

Чёт я не понял конец видео, обяьсните пожалуйста. Он говорит, что 7+3 будет -6, так как происходит переполнение. А как же получить 10?
ответить

Спасибо за ролик, знаю что с рекламой на ютубе сейчас плохо, так что отправил соточку на юмани, с миру по нитке так сказать: )
ответить

А я то думаю, зачем в механизмах в майнкрафте для отрицательных чисел используют инвертирование. Спасибо за видео!
ответить

Но самое крутое в дополнительном коде то, что даже умножение в нем не требует никаких ухищрений для учета знака.
ответить

Наконец-то разобрался с этим! Ещё интересно было бы в конце разобрать умножение числа на -1, тоже вкусный момент
ответить

Сколько же сил и времени было вложено в этот контент.
Очень интересно смотреть, благодарю за информацию: )

ответить

Алек! Давай про числа с плавающей точкой такой же видос! Этот IEEE 754 вообще тёмный лес. Растолкуй нам неучам.
ответить
Добавить отзыв, комментарий






Другие видео канала