Про целочисленные типы
Apr. 5th, 2016 10:38 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Интересно, что количество бит в самом большом целочисленном типе, поддерживаемом современными компиляторами (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).
Это к вопросу о том, как интерпретировать x << -1.
Мне пришли в голову две «естественные» интерпретации:
1. x << -1 = x >> 1.
2. x << -1 = x<< ((usigned что-то)-1) = x << 255 или x << 65535 и так далее.
В обоих случаях 1 << -1 = 0.
Но не все компиляторы с этим согласны. (понятно что по стандарту это undefined behavoir).
no subject
Date: 2016-04-06 09:41 am (UTC)Существовали архитектуры, в которых минимальным адресуемым фрагментом было машинное слово. Там как ни крути, всегда получалось, что размер любого типа кратен размеру слова.
no subject
Date: 2016-04-06 10:01 am (UTC)no subject
Date: 2016-04-06 10:21 am (UTC)