LINUX.ORG.RU

Вопрос по некрокомментарию от эмулека

 , , ,


0

1

@emulek однажды глаголил signed vs unsigned int in C++ (комментарий)

«нормальный код» это у Кнута, который хоть на 6и битных байтах работал, хоть на десятичных от 0 до 100. Вот это — Ъ. А у нас — говно.

Про какой код Кнута конкретно он говорил?

в чем проблема-то?

в плюсах размер int в битах зависит от целевой платформы и равен длине машинного слова. на 16 битной платформе он 16 бит. 32 битной - 32 и так далее. он таков чтобы арифметическая команда и работа с памятью для int была длиной в одну машинную команду.

если надо точно указать с какой длиной в битах вы хотите иметь дело, есть типы int8_t, int16_t и так далее. длина в битах нужна если для вас это важно. например вы приниммаете блок данных от внешнего устройства, в котором данные упакованы в 16 битные int или unsigned. а платвформа у вас 64 битная например. и вам важно обращаться к таким данным именно как к 16 битным. и все такое.

везде где число бит неважно берется int, long, long long где число бит важно - берутся int8, int16… и так далее.

alysnix ★★★
()

Про какой код Кнута конкретно он говорил?

Может быть там имелось в виду, что MIX 1009 гипотетический компьютер? На гипотетическом компьютере писался гипотетически нормальный код. )

Опять же гипотетически - тернарная логика и триты эффективнее двоичной и битов.

Вопрос только в железной, компонентной базе )

А у нас — говно.

(c)

Ну, я бы так понял.

Toxo2 ★★★★
()
Последнее исправление: Toxo2 (всего исправлений: 1)
Ответ на: комментарий от alysnix

эх вот бы еще люди свои (особенно расплывчатые) утверждения могли подкреплять цитатой из стандарта было бы замечательно, дабы не создавалось впечатление недоосведомленности в теме

reprimand ★★★★★
()

Собственно, ни про какой конкретно, а про то, что в первом томе «Искусства программирования...» это обсуждается (5 бит именно оттуда), и Дональд утверждает, что все (если не оговорено обратное) его дальнейшие примеры от размера байта MIX не зависят.

ABW ★★★★★
()
Ответ на: комментарий от alysnix

в плюсах размер int в битах зависит от целевой платформы и равен длине машинного слова. на 16 битной платформе он 16 бит. 32 битной - 32 и так далее. он таков чтобы арифметическая команда и работа с памятью для int была длиной в одну машинную команду.

Чушь. На x86-64 у меня int 32-битный

SZT ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Кстати заметь, что «байт» в те времена не означал «минимально адресуемую единицу памяти», там всё гораздо сложнее. В iAPX-432, например, МАП называлась «токен» и была 4-х битовой, в большинстве «числодробилок» от Лебедева и Крэя адресовались слова, в которые можно было поместить достаточно большое число с плавающей точкой. В переводе «Пересмотренного сообщения ... 68» byte передаётся как «слог».

ABW ★★★★★
()
Ответ на: комментарий от ABW

Когда меня в дурку забирать будут после такого, я скажу что виной всему комментарии на ЛОРе это они меня пошатнули =) А вечерами я слагал слоги по Кнуту )))))))0

LINUX-ORG-RU ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.