- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 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]);}
...
guest 05.02.2009 08:29 # 0
guest 10.02.2009 12:55 # 0
фак мой моск
guest 27.02.2009 15:49 # −1
Тупые понты!
Во-первых с ошибками
Обращение за пределы массива.
Во-вторых не оптимально:
А можно
guest 01.03.2009 02:31 # 0
во 2/2-х, нет обращения за пределы массива
во 2>>1<<1-х, если и говорить об оптимальности то начинать с того что массив начинается с нуля...
guest 14.07.2009 10:00 # 0
разве оператор<< не имеет приоритет ниже деления? Ведь работает же такое без скобок:
cout << 256/16; // вывод "16"
ich 14.08.2009 16:31 # 0
inkanus-gray 04.06.2016 12:32 # 0
guest 11.08.2009 12:12 # +0.2
Нет переполнений и вполне шустро
const char hex[] = "0123456789ABCDEF";
for (i = 0; i<len; i++) {
printf ("%c%c", hex[(buff[i]>>4)&15], hex[buff[i]&15]);
}