vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner
Интересно, что количество бит в самом большом целочисленном типе, поддерживаемом современными компиляторами (int128_t), уже сравнялось с максимальным значением самого маленького (signed char).

Это к вопросу о том, как интерпретировать x << -1.

Мне пришли в голову две «естественные» интерпретации:

1. x << -1 = x >> 1.
2. x << -1 = x<< ((usigned что-то)-1) = x << 255 или x << 65535 и так далее.

В обоих случаях 1 << -1 = 0.

Но не все компиляторы с этим согласны. (понятно что по стандарту это undefined behavoir).

Date: 2016-04-05 12:18 pm (UTC)
From: [identity profile] nathoo.livejournal.com
>>тупо дешевле сделать на x64, под линуксом и, соответственно, с полным набором языков высокого уровня.

>То есть НЕ СЛЕДУЕТ ВООБЩЕ употреблять "данных низкого уровня" и обрабтку "низкого уровня" при написании программ (на любом языке, высокого ли уровня или нет - не важно)?

Где я это сказал ?
Я просил привести пример оправданного прменения булевой арифметики в современной программе.

> Умный дом? С автоапдейтящимися прошивками в железках, ога. Спасибо. Через 5 лет, после смены таймзоны и апдейта прошивки под оную смену (например) - что будете делать (реальный случай - размер буфера под выдаваемой некоторой прошивкой текстовое представление времени оказался недостаточен при изменении наименования таймзоны, в результате - атака по переполнению стека и креш системы)? А что будет делать клиент, если автор программы "высокого уровня" в одном из контроллеров успел помереть?

В моем случае, клиент будет лежать в гробу, глубоко безразличный к проблеме, тк умный дом он строит для себя сам. :-)
В стандартном - свяжется с саппортом, или (если это будет очень умный клиент :-) соберет нужную прошивку сам из открытых исходников.
Вообще, мне кажется, термин прошивка не совсем применим к современным устройствам. Правильнее говорить про ОС и прикладной софт. Соответственно, нормальный процесс исправления ошибок в прикладном софте. Как вариант - зайти на контроллер ssh-м и обновить соответствующий пакет.

Но как это все связано с изначальным разговором про булеву арифметику, мне не очень понятно.

> Правда, зачем думать о низком уровне? Давайте писать на высоком и не думать вообще. :)
Ну, как бы, да. Мир к тому идет. В частности, Вашими усилиями. Нет ?
Edited Date: 2016-04-05 12:20 pm (UTC)

Date: 2016-04-05 12:38 pm (UTC)
From: [identity profile] qkowlew.livejournal.com
оправданного прменения булевой арифметики в современной программе.

Почти любая реализация видеокодеков.
Содержательная обработка данных с конкретного железа.
При соответствующе документированном протоколе.
Edited Date: 2016-04-05 12:39 pm (UTC)

Date: 2016-04-05 12:41 pm (UTC)
From: [identity profile] nathoo.livejournal.com
Спасибо.
По дороге сам вспомнил про криптографию :-)

Date: 2016-04-05 03:10 pm (UTC)
From: [identity profile] besm6.livejournal.com
Во, я как раз хотел сказать.

Компактные сетевые протоколы с быстрым парсингом, кстати. Типа CBOR. Она там примитивная, но есть, и обеспечивает компактность.

Когда данных надо передать МНОГО, компактность протокола ой, важна...

Date: 2016-04-05 03:33 pm (UTC)
From: [identity profile] qkowlew.livejournal.com
Если уж вспоминать про ФИДО - то лично я в своём тоссере ФИДО почты ВСЕ таблицы подписки линков на эхи храню побитно.

AreaLink[area_off] |= here_mask1;
AreaLink[area_off] &= here_mask0;
area_off - понятное дело, адрес байта. :)

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

June 2025

S M T W T F S
1 23 4567
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 4th, 2025 06:12 am
Powered by Dreamwidth Studios