Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1 ... 64, 65, 66, 67, 68
 Re: CS юмор (на темы: об алгоритмах, программах, железе, языках)
Аватара пользователя

(ozheredov)

ozheredov в сообщении #1731111 писал(а):
А можно пояснительную бригаду? (Что $2^8 - 1 = 255$ я допустим знаю)
Могу предположить следующий сценарий:
1) согласно высказанному желанию, джинн обнуляет 8-битный счётчик желаний;
2) поскольку одно желание выполнено, джинн делает инкремент счётчика.

 Re: CS юмор (на темы: об алгоритмах, программах, железе, языках)
Аватара пользователя

(Оффтоп)

Someone в сообщении #1731112 писал(а):
поскольку одно желание выполнено, джинн делает инкремент счётчика
Только скорее декремент. Джинн, видимо, работает как-то так:
Используется синтаксис Text
for (uint8_t wishes = 3; wishes > 0; --wishes) fulfill_wish();

 Re: CS юмор (на темы: об алгоритмах, программах, железе, языках)

(Someone)

Someone в сообщении #1731112 писал(а):
Могу предположить следующий сценарий:
1) согласно высказанному желанию, джинн обнуляет 8-битный счётчик желаний;
2) поскольку одно желание выполнено, джинн делает инкремент счётчика.


Тогда исходно желаний вроде бы 256, а Джинн говорит, что 3. То есть используются только первые два бита, вроде бы.

У меня в свою очередь есть несколько более логичная, КМК, версия анекдота: клиент выполняет два желания, а третье отводит для обнуления счетчика. Дальше повторяет.


-- добавлено через 5 минут --

(mihaild)

mihaild
И после обнуления Unsigned Int его декремент приводит к появлению 255? Это потому, что декремент реализован как какая-то хитрая битовая операция, или типа того?

 Re: CS юмор (на темы: об алгоритмах, программах, железе, языках)
Аватара пользователя
ozheredov

(Оффтоп)

ozheredov в сообщении #1731115 писал(а):
И после обнуления Unsigned Int его декремент приводит к появлению 255?

Не Unsigned Int, а uint8_t - 8-битовый Unsigned Int

 Re: CS юмор (на темы: об алгоритмах, программах, железе, языках)

(EUgeneUS)

EUgeneUS в сообщении #1731118 писал(а):
Не Unsigned Int, а uint8_t - 8-битовый Unsigned Int


Ок, да, и что с ним происходит, когда декрементируется восемь нулей и почему?

 Re: CS юмор (на темы: об алгоритмах, программах, железе, языках)
Аватара пользователя
ozheredov

(Оффтоп)

ozheredov в сообщении #1731119 писал(а):
Ок, да, и что с ним происходит, когда декрементируется восемь нулей и почему?

Раньше в таких случая спрашивали "Вас в гугле забанили?"
Нынче всё может оказаться, поэтому вот:
Цитата:
Декремент беззнаковой переменной, которая равна нулю, вызывает целочисленное переполнение. Значение переменной резко меняется на самое большое число, которое может поместиться в этот тип данных (например, 65535 для 16-битного unsigned short или 4294967295 для 32-битного unsigned int).

 Re: CS юмор (на темы: об алгоритмах, программах, железе, языках)
Аватара пользователя

(Оффтоп)

ozheredov в сообщении #1731119 писал(а):
Ок, да, и что с ним происходит, когда декрементируется восемь нулей и почему?
Потому что uint8_t - это на самом деле $\mathbb Z_{2^8}$ (с представителями от $0$ до $255$).

 Re: CS юмор (на темы: об алгоритмах, программах, железе, языках)

(mihaild)

mihaild в сообщении #1731122 писал(а):
Потому что uint8_t - это на самом деле $\mathbb Z_{2^8}$ (с представителями от $0$ до $255$).


Спасибо. Теперь понятно
С некоторой итерации я сам интуитивно предположил, что это так, и вопрос скорее был в том, почему uint8 программно реализован именно как кольцо вычетов

 Re: CS юмор (на темы: об алгоритмах, программах, железе, языках)
Аватара пользователя
Вообще рисково, не зная устройства давать такие инструкции. Получил бы минус одно, и роли бы переменились.

1 Полезно / согласиеMikhail_K
 Re: CS юмор (на темы: об алгоритмах, программах, железе, языках)
Аватара пользователя

(mihaild)

mihaild в сообщении #1731113 писал(а):
Только скорее декремент.
Да. Инкремент — это описка, вызванная тем, что давно этими терминами не пользовался. Спасибо за поправку.

 [ Сообщений: 1015 ]  На страницу Пред.  1 ... 64, 65, 66, 67, 68


Соглашение о конфиденциальности | Общие правила

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group