Кресты / Говнокод #503 0 12345678910111213141516 ... 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.02.2009 (Updated 24.03.2018) Комментарии (8) RSS guest 18 лет ago # 0 бдыщ-бдыщ, взорвало мозг Ответить guest 18 лет ago # 0 ADOConnection: фак мой моск Ответить guest 18 лет ago # 0 Армитаж: Тупые понты! Во-первых с ошибками hex[16]="F"; Обращение за пределы массива. Во-вторых не оптимально: hex[buff[i-1]>>4<<4 А можно hex[buff[i-1] & 0xF0 Ответить guest 18 лет ago # 0 джулиан: во 2/2-х, нет обращения за пределы массива во 2>>1<<1-х, если и говорить об оптимальности то начинать с того что массив начинается с нуля... Ответить guest 17 лет ago # 0 >hex[buff[i-1]>>4<<4/16-1 разве оператор<< не имеет приоритет ниже деления? Ведь работает же такое без скобок: cout << 256/16; // вывод "16" Ответить ich 17 лет ago # 0 ⇈ Одно дело битовый сдвиг, другое оператор << для сложного объекта. Ответить inkanus-gray 10 лет ago # 0 ⇈ И как меняется приоритет в случае сложных объектов? Ответить guest 17 лет ago # 0 Помоему вполне красиво смотрелось бы Нет переполнений и вполне шустро const char hex[] = "0123456789ABCDEF"; for (i = 0; i<len; i++) { printf ("%c%c", hex[(buff[i]>>4)&15], hex[buff[i]&15]); } Ответить Добавить комментарий Отменить ответ Где здесь C++, guest?! А не использовать ли нам bbcode? [b]жирный[/b] — жирный [i]курсив[/i] — курсив [u]подчеркнутый[/u] — подчеркнутый [s]перечеркнутый[/s] — перечеркнутый [blink]мигающий[/blink] — мигающий [color=red]цвет[/color] — цвет (подробнее) [size=20]размер[/size] — размер (подробнее) [code=<language>]some code[/code] (подробнее)
guest 18 лет ago # 0 Армитаж: Тупые понты! Во-первых с ошибками hex[16]="F"; Обращение за пределы массива. Во-вторых не оптимально: hex[buff[i-1]>>4<<4 А можно hex[buff[i-1] & 0xF0 Ответить
guest 18 лет ago # 0 джулиан: во 2/2-х, нет обращения за пределы массива во 2>>1<<1-х, если и говорить об оптимальности то начинать с того что массив начинается с нуля... Ответить
guest 17 лет ago # 0 >hex[buff[i-1]>>4<<4/16-1 разве оператор<< не имеет приоритет ниже деления? Ведь работает же такое без скобок: cout << 256/16; // вывод "16" Ответить
guest 17 лет ago # 0 Помоему вполне красиво смотрелось бы Нет переполнений и вполне шустро const char hex[] = "0123456789ABCDEF"; for (i = 0; i<len; i++) { printf ("%c%c", hex[(buff[i]>>4)&15], hex[buff[i]&15]); } Ответить
фак мой моск
Тупые понты!
Во-первых с ошибками
Обращение за пределы массива.
Во-вторых не оптимально:
А можно
во 2/2-х, нет обращения за пределы массива
во 2>>1<<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]);
}