Просто тестовый пример, время выполнения 3 минуты
#include <stdio.h>
template < typename T > void print_hex ( T in_Value )\ { unsigned int half_byte = sizeof ( in_Value ) * 2; for ( int count = 0 ; count < half_byte ; count ++ ) { char symbol = in_Value >> ((half_byte - count - 1) * 4) & 0x0f; if ( symbol >= 0x0a ) { symbol += 'A' - 0xa; } else { symbol += '0'; } printf ( "%c" , symbol ); } }
int main ( int argc , char ** argv ) { print_hex < int > ( 0xABCDF0BA ); }
Мнение: опасный стиль