ещё про портабельность |
[Aug. 19th, 2013|08:30 am] |
могут спросить: а как же надо проверять, будет ли перенос при сдвиге, и чтобы портабельно? отвечу:
#include <limits.h> carry = (value&(INT_MAX&~(INT_MAX>>1))); /* а теперь двигаем */ value = (value&(INT_MAX>>1))<<1; конечно, уебанство. а что делать? кто виноват, что авторы стандарта си — тупорылые жопорукие анацефалы? спросили бы меня вовремя — всё бы нормально было. |
|
|
Comments: |
From: | (Anonymous) |
Date: | August 19th, 2013 - 08:54 am |
---|
| | | (Link) |
|
А покажи свои патчи в стандарт Си на эту тему. /smartly
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | August 19th, 2013 - 08:58 am |
---|
| | | (Link) |
|
там не берут патчи от анонимусов.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | August 19th, 2013 - 09:00 am |
---|
| | | (Link) |
|
я, впрочем, чуть раньше уже писал: добавить работу с carry flag, стандартизировать представление целых, определить результат переполнения в операциях с целыми. также впилить операции циклического сдвига.
ну, и поубирать все «неопределено» из стандарта к ебеням.
From: | (Anonymous) |
Date: | August 19th, 2013 - 07:56 pm |
---|
| | | (Link) |
|
Это будет уже другой язык. А языки такого типа сейчас как-то не модно разрабатывать. /smartly
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | August 19th, 2013 - 08:01 pm |
---|
| | | (Link) |
|
точно тот же самый си это будет. только с фичами, которые там давно должны быть.
From: | 666 |
Date: | August 19th, 2013 - 10:26 pm |
---|
| | | (Link) |
|
если value беззнаковое, то int_max не пиздато
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | August 19th, 2013 - 10:30 pm |
---|
| | | (Link) |
|
дык это ж дополнение к прошлому, где «int value».
From: | 666 |
Date: | August 19th, 2013 - 10:40 pm |
---|
| | | (Link) |
|
кстати не факт что портабельно двигать signed и что числа в дополнительном коде
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | August 19th, 2013 - 10:42 pm |
---|
| | | (Link) |
|
так о чём я и писал. портабельно — это вот так, как в этом посте. потому как битовый сдвиг — это таки битовый сдвиг, и работает предсказуемо до переполнения. | |