> 関数でintTostrのような関数が有ればと思いヘッダーを見て見
> たのですが無いようでした。
私は、処理を高速化するために以下のような関数を使っています。
(コードサイズ的には不利ですが、文字列のテーブルを使っています)
ItoA10 関数は、もっと最適化できそうな気がするのですが、
動いているのでこのまま使っています(^^;)。
char* ItoA10( unsigned long a )
{
const int Keta = 2 ;
static const unsigned long pow[] = {
100000000u,
1000000u,
10000u,
100u,
1u, 0 } ;
static char Str[ 12 ] ;
char* Buffer ;
unsigned long* Pow ;
Buffer = Str ;
Pow = ( unsigned long* )pow ;
while( *Pow != 0 ) {
memcpy( Buffer, to10ind( a / *Pow ) , Keta ) ;
a %= ( *Pow ) ;
Buffer += Keta ;
Pow ++ ;
}
*Buffer = 0 ;
return( Str ) ;
}
char* to10ind( unsigned int data )
{
//処理を早くするためにテーブルにしている
static const char* const str10[] = {
"00","01","02","03","04","05","06","07","08","09"
, "10","11","12","13","14","15","16","17","18","19"
, "20","21","22","23","24","25","26","27","28","29"
, "30","31","32","33","34","35","36","37","38","39"
, "40","41","42","43","44","45","46","47","48","49"
, "50","51","52","53","54","55","56","57","58","59"
, "60","61","62","63","64","65","66","67","68","69"
, "70","71","72","73","74","75","76","77","78","79"
, "80","81","82","83","84","85","86","87","88","89"
, "90","91","92","93","94","95","96","97","98","99"
, NULL
} ;
if( data >= 100 ) {
return( "??" ) ;
}
return( ( char* )( str10[ data ] ) ) ;
}
char* toHexind( unsigned int data )
{
//処理を早くするためにテーブルにしている
static const char* const strHex[] = {
"00","01","02","03","04","05","06","07","08","09","0A","0B","
0C","0D","0E","0F"
, "10","11","12","13","14","15","16","17","18","19","1A","1B","
1C","1D","1E","1F"
, "20","21","22","23","24","25","26","27","28","29","2A","2B","
2C","2D","2E","2F"
, "30","31","32","33","34","35","36","37","38","39","3A","3B","
3C","3D","3E","3F"
, "40","41","42","43","44","45","46","47","48","49","4A","4B","
4C","4D","4E","4F"
, "50","51","52","53","54","55","56","57","58","59","5A","5B","
5C","5D","5E","5F"
, "60","61","62","63","64","65","66","67","68","69","6A","6B","
6C","6D","6E","6F"
, "70","71","72","73","74","75","76","77","78","79","7A","7B","
7C","7D","7E","7F"
, "80","81","82","83","84","85","86","87","88","89","8A","8B","
8C","8D","8E","8F"
, "90","91","92","93","94","95","96","97","98","99","9A","9B","
9C","9D","9E","9F"
, "A0","A1","A2","A3","A4","A5","A6","A7","A8","A9","AA","AB","
AC","AD","AE","AF"
, "B0","B1","B2","B3","B4","B5","B6","B7","B8","B9","BA","BB","
BC","BD","BE","BF"
, "C0","C1","C2","C3","C4","C5","C6","C7","C8","C9","CA","CB","
CC","CD","CE","CF"
, "D0","D1","D2","D3","D4","D5","D6","D7","D8","D9","DA","DB","
DC","DD","DE","DF"
, "D0","D1","D2","D3","D4","D5","D6","D7","D8","D9","DA","DB","
DC","DD","DE","DF"
, "F0","F1","F2","F3","F4","F5","F6","F7","F8","F9","FA","FB","
FC","FD","FE","FF"
, NULL
} ;
data &= 0xff ;
return( ( char* )( strHex[ data ] ) ) ;
}
--
--------- Computer Artisan ---------------------------
シーエー 寺脇 勝彦
E-mail wakky@xxxxxxxxxxxxxxxxxxx
hgb01644@xxxxxxxxx(予備)
URL http://www.computerartisan.com/