- 1
https://foxford.ru/wiki/informatika/tipy-tselyh-chisel-yazyka-s
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−16
https://foxford.ru/wiki/informatika/tipy-tselyh-chisel-yazyka-s
Вот такая хуйня получается, когда учебные материалы по Си пишут те, которые сами нихуя не знают Си и не читали Священный Драфт Стандарта. Сколько хуйни по ссылке вы можете найти?
spoiler: https://habrahabr.ru/post/156593/
gost 26.04.2017 06:57 # 0
j123123 26.04.2017 09:55 # 0
>Ключевые слова signed и unsigned указывают, как интерпретируется нулевой бит объявляемой переменной: если указано unsigned, то нулевой бит интерпретируется как часть числа, в противном случае нулевой бит интерпретируется как знаковый.
В случае с char это не так. char без указания signed и unsigned может быть как знаковым, так и беззнаковым
> Для 16-битовых ЭВМ размер слова равен 2-м байтам, на 32-битных соответственно 4-м байтам
Поскольку байты не всегда 8-битные, это утверждение является хуйней
cykablyad 26.04.2017 10:08 # 0
Antervis 26.04.2017 12:01 # 0
стандарт, емнип, вообще не определяет, как должна быть реализована знаковость чисел
j123123 26.04.2017 12:21 # 0
6.2.6.2 Integer types
Antervis 26.04.2017 15:44 # +1
j123123 26.04.2017 16:34 # 0
http://port70.net/~nsz/c/c11/n1570.html#note49
49) A positional representation for integers that uses the binary digits 0 and 1, in which the values represented by successive bits are additive, begin with 1, and are multiplied by successive integral powers of 2, except perhaps the bit with the highest position. (Adapted from the American National Dictionary for Information Processing Systems.) A byte contains CHAR_BIT bits, and the values of type unsigned char range from 0 to 2CHAR_BIT - 1.
Иными словами, только bit with the highest position может иметь какой-то особый смысл
j123123 26.04.2017 16:38 # 0
Antervis 26.04.2017 19:37 # 0
Как в том анекдоте: https://i.reddituploads.com/83589070b986499b8b2fe13609740f0a?fit=max &h=1536&w=1536&s=0300b655a11682a0dad8450 a4c68a207
TeaBag 26.04.2017 21:49 # −10
bormand 26.04.2017 22:31 # 0
j123123 27.04.2017 06:06 # 0
Но кастанув signed в unsigned и сдвинув вправо на 31 бит, у тебя в первом бите будет знаковый бит, разве нет? Тогда какая разница?
Antervis 27.04.2017 08:48 # 0
TeaBag 27.04.2017 12:10 # −5
barop 26.04.2017 14:06 # +3
bormand 26.04.2017 07:25 # 0
cykablyad 26.04.2017 10:06 # +5
barop 26.04.2017 14:13 # 0
dm_fomenok 26.04.2017 15:21 # +2
Psionic 26.04.2017 19:05 # +3
bormand 26.04.2017 19:27 # 0
barop 26.04.2017 17:42 # +1
Psionic 26.04.2017 11:48 # 0
barop 26.04.2017 14:07 # +1
Dummy00001 26.04.2017 15:18 # 0
barop 26.04.2017 16:46 # +2
Bobik 27.04.2017 02:22 # 0
j123123 27.04.2017 02:32 # +4
Bobik 27.04.2017 18:56 # +2
gost 28.04.2017 17:22 # 0
CrashTesterAnusov 29.04.2017 00:03 # −5