1. Си / Говнокод #22854

    −16

    1. 1
    https://foxford.ru/wiki/informatika/tipy-tselyh-chisel-yazyka-s

    Вот такая хуйня получается, когда учебные материалы по Си пишут те, которые сами нихуя не знают Си и не читали Священный Драфт Стандарта. Сколько хуйни по ссылке вы можете найти?
    spoiler: https://habrahabr.ru/post/156593/

    Запостил: j123123, 26 Апреля 2017

    Комментарии (31) RSS

    • Только в таблице нашёл 12 хуйни. Правильно там заполнены только две строки - которые int и unsigned int.
      Ответить
      • Там и дальше хуйня есть, например вот

        >Ключевые слова signed и unsigned указывают, как интерпретируется нулевой бит объявляемой переменной: если указано unsigned, то нулевой бит интерпретируется как часть числа, в противном случае нулевой бит интерпретируется как знаковый.

        В случае с char это не так. char без указания signed и unsigned может быть как знаковым, так и беззнаковым

        > Для 16-битовых ЭВМ размер слова равен 2-м байтам, на 32-битных соответственно 4-м байтам

        Поскольку байты не всегда 8-битные, это утверждение является хуйней
        Ответить
        • > Для 18-битовых ЭВМ размер слова равен 2.25 байтам
          Ответить
        • > В случае с char это не так. char без указания signed и unsigned может быть как знаковым, так и беззнаковым
          стандарт, емнип, вообще не определяет, как должна быть реализована знаковость чисел
          Ответить
          • http://port70.net/~nsz/c/c11/n1570.html#6.2.6.2
            6.2.6.2 Integer types
            Ответить
            • да, но я могу реализовать знаковость не в нулевом бите, а хоть в десятом, если для беззнакового числа этот десятый бит будет старшим.
              Ответить
              • >да, но я могу реализовать знаковость не в нулевом бите, а хоть в десятом, если для беззнакового числа этот десятый бит будет старшим.
                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 может иметь какой-то особый смысл
                Ответить
                • Да, есть еще всякая петушня типа MSB LSB https://en.wikipedia.org/wiki/Bit_numbering которая имеет значение разве что при передаче по последовательному интерфейсу, битик-за-битиком или записи на какую-нибудь флешку на низком уровне(когда можно отдельный бит менять, но такой хрени наверно нет). Не стоит путать этот вид хуйни с endianness
                  Ответить
                • да, но понятие highest position неоднозначно. Я могу считать справа налево, слева направо и с 11-ого по 31-й и потом с 0 до 10.

                  Как в том анекдоте: https://i.reddituploads.com/83589070b986499b8b2fe13609740f0a?fit=max &h=1536&w=1536&s=0300b655a11682a0dad8450 a4c68a207
                  Ответить
        • Автор хотел сказать что в единственном известном ему копеляторе под риальный режим 86 размер инта 16, а в копеляторе под защищ режим 32, а других он не знает
          Ответить
    • А что за язык S?
      Ответить
      • У нас в переходе висело объявление о приеме на работу программистов на языке Si#
        Ответить
      • S is a statistical programming language developed primarily by John Chambers and (in earlier versions) Rick Becker and Allan Wilks of Bell Laboratories. The aim of the language, as expressed by John Chambers, is "to turn ideas into software, quickly and faithfully".[
        Ответить
    • Плохо то что неуказано что рамеры типов могут варьироватся в зависимости от компилятора и его настроек, я об это больно спотыкался - да и про всякие int32_t/int16_t знать неофиту полезно.
      Ответить
    • Такое впечатление что этот текст написали в 1998 году для пользователей борланд си
      Ответить
      • вероятно. "ЭВМ" я с тех времен больше и не слышал.
        Ответить
        • ЭВМ IBM PC AT оснащен четырьмя мегабайтами ОЗУ
          Ответить
    • А я лично знаком с чуваком, который это делает :-(
      Ответить
    • показать все, что скрытоНе говори слова хуй
      Ответить

    Добавить комментарий