crypt of decay - ещё про портабельность [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

ещё про портабельность [Aug. 19th, 2013|08:30 am]
Previous Entry Add to Memories Tell A Friend Next Entry
могут спросить: а как же надо проверять, будет ли перенос при сдвиге, и чтобы портабельно? отвечу:
#include <limits.h>
carry = (value&(INT_MAX&~(INT_MAX>>1)));
/* а теперь двигаем */
value = (value&(INT_MAX>>1))<<1;

конечно, уебанство. а что делать? кто виноват, что авторы стандарта си — тупорылые жопорукие анацефалы? спросили бы меня вовремя — всё бы нормально было.
Linkmeow!

Comments:
From:(Anonymous)
Date:August 19th, 2013 - 08:54 am
(Link)
А покажи свои патчи в стандарт Си на эту тему.
/smartly
[User Picture]
From:[info]ketmar
Date:August 19th, 2013 - 08:58 am
(Link)
там не берут патчи от анонимусов.
[User Picture]
From:[info]ketmar
Date:August 19th, 2013 - 09:00 am
(Link)
я, впрочем, чуть раньше уже писал: добавить работу с carry flag, стандартизировать представление целых, определить результат переполнения в операциях с целыми. также впилить операции циклического сдвига.

ну, и поубирать все «неопределено» из стандарта к ебеням.
From:(Anonymous)
Date:August 19th, 2013 - 07:56 pm
(Link)
Это будет уже другой язык. А языки такого типа сейчас как-то не модно разрабатывать.
/smartly
[User Picture]
From:[info]ketmar
Date:August 19th, 2013 - 08:01 pm
(Link)
точно тот же самый си это будет. только с фичами, которые там давно должны быть.
From:[info]666
Date:August 19th, 2013 - 10:26 pm
(Link)
если value беззнаковое, то int_max не пиздато
[User Picture]
From:[info]ketmar
Date:August 19th, 2013 - 10:30 pm
(Link)
дык это ж дополнение к прошлому, где «int value».
From:[info]666
Date:August 19th, 2013 - 10:40 pm
(Link)
кстати не факт что портабельно двигать signed
и что числа в дополнительном коде


[User Picture]
From:[info]ketmar
Date:August 19th, 2013 - 10:42 pm
(Link)
так о чём я и писал. портабельно — это вот так, как в этом посте. потому как битовый сдвиг — это таки битовый сдвиг, и работает предсказуемо до переполнения.