1. C++ / Говнокод #503

    +182.7

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    ...
    
    char hex[16];
    int i;
    
    for (i = 1; i<=len; i++)
    {
    hex[1]="0";hex[2]="1";hex[3]="2";hex[4]="3";
    hex[5]="4";hex[6]="5";hex[7]="6";hex[8]="7";
    hex[9]="8";hex[10]="9";hex[11]="A";hex[12]="B";
    hex[13]="C";hex[14]="D";hex[15]="E";hex[16]="F";
    
    printf ("%c", hex[buff[i-1]>>4<<4/16-1]);
    printf ("%c", hex[buff[i-1]>>4<<4 ^ buff[i-1]-1]);}
    
    ...

    потрясающий вывод чисел в 16-й системе счисления. родители девушки похоже наиболее яркие представители Индии и Китая...

    Запостил: guest, 05 Февраля 2009

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

    • бдыщ-бдыщ, взорвало мозг
      Ответить
    • ADOConnection:
      фак мой моск
      Ответить
    • Армитаж:
      Тупые понты!
      Во-первых с ошибками
      hex[16]="F";

      Обращение за пределы массива.
      Во-вторых не оптимально:
      hex[buff[i-1]>>4<<4

      А можно
      hex[buff[i-1] & 0xF0
      Ответить
    • джулиан:
      во 2/2-х, нет обращения за пределы массива
      во 2>>1<<1-х, если и говорить об оптимальности то начинать с того что массив начинается с нуля...
      Ответить
    • >hex[buff[i-1]>>4<<4/16-1

      разве оператор<< не имеет приоритет ниже деления? Ведь работает же такое без скобок:

      cout << 256/16; // вывод "16"
      Ответить
      • Одно дело битовый сдвиг, другое оператор << для сложного объекта.
        Ответить
        • И как меняется приоритет в случае сложных объектов?
          Ответить
    • Помоему вполне красиво смотрелось бы
      Нет переполнений и вполне шустро

      const char hex[] = "0123456789ABCDEF";
      for (i = 0; i<len; i++) {
      printf ("%c%c", hex[(buff[i]>>4)&15], hex[buff[i]&15]);
      }
      Ответить

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