1/31 ($B2P(B)
System/370 $B$N$*JY6/(B
$B$[$m$[$m$H(B System/370 $B%W%m%;%C%5$N$*JY6/$r$O$8$a$k!#(B
- $B%S%C%0!&%(%s%G%#%"%s(B
- $BL?Na%5%$%:$O(B 2$B!"(B4$B!"(B6 $B%P%$%H!#(B
- 32-bit $BHFMQ%l%8%9%?(B 16 $BK\!#(B1$BK\(B $B%<%m%l%8%9%?$,$"$k!#(B
- 64-bit $BIbF0>.?tE@%l%8%9%?$,(B 16 $BK\!#(B
- 2$B?J2=(B10$B?J?tL?Na$,B8:_!#(B
- $B%"%I%l%9CM$O(B MSB $B%S%C%H$,%/%j%"$5$l$F$$$l$P(B 24 $B%S%C%H%a%b%j6u4V!"(B $B%;%C%H$5$l$F$$$l$P(B 31 $B%S%C%H%a%b%j6u4V$r$"$i$o$9!#(B
$BM=A[$h$j$OL?Na%;%C%H$KJJ$,$J$$$N$G!"0BEH$N$?$aB)!#(B
$B;29M(B
$B%"%U%#%j%(%$%H$N<}1W(B
$BA0;MH>4|$N(B Amazon $B$N%"%=%7%(%$%H$N<}F~$,3NDj!#(B
$B:#4|$O;YJ'$$2<8B$N(B 1,500$B1_$KFO$+$:(B ($BN^(B)
1/29 ($BF|(B)
SlySoft CloneCD ($B8x<0(B)
CD-ROM $B$+$i$N5[=P$7$H!"(B $B%$%a!<%8>F$-$N$?$a$K(B CloneCD $B$N%*%s%i%$%sHG$r9XF~!#(B PRO-G $B$K$*6b$rF~$l$k$N$O7y$J$N$GK\2H$+$iD>@\9XF~!#(B
$BL40C!wIpB"Cf86(B
$B5W$7$V$j$K2q
1/28 ($BEZ(B)
$B;~;v(B
$B%9%Z!<%9%7%c%H%k!&%A%c%l%s%8%c!<$,GzH/$7$F$+$i:#F|$G(B20$BG/L\$@$C$?!#(B
$BMh7n$KF~$k$H%3%m%s%S%"$NGzH/$N(B3$B<~G/$b$"$k(B(2003$BG/(B2$B7n(B1$BF|$NF|5-(B)$B!#(B
$B:$$j$^$9!"%U%!%$%s%^%s$5$s(B $B$rFI$`$H!"Ev;~$N8ND4::0Q0w2q$NMM;R$,$&$+$,$($k!#(B $B$G$b%A%c%s%l%8%c!<$,GzH/$7$?;~$H%3%m%s%S%"$N;~$H>u67$,$=$C$/$j$J$s$@$h$J$!!#(B $B2<$N%(%s%8%K%"$,4m81$@$H9M$($F$$$k$N$K!">e$N?M4V$,$=$N%7%0%J%k$r%-%c%C%A$7$F$$$J$$>u67$H$+!#(B
$B3P$(=q$-(B
$B2HDB$r?6$j9~$`!#(B
$B7@Ls$7D>$7$F5$$E$$$?$N$@$,!"Bg2H$5$s$X$N2HDB$N?69~$_F|$O7nKvF|$H4*0c$$$7$F$$$?$,!"K\Ev$O3F7n$N(B27$BF|$@$C$?$h!D(B
1/25 ($B?e(B)
$BG'CN$Nf+(B
$BCf8x?7=q$N;T@n(B $B?-0lCx$N(B$B!V9M$($k$3$H$N2J3X!W(B$B$rFI$s$G$$$?$N$@$,!";0<|?MLdBj$K$D$$$F?($l$F$$$k$H$3$m$KLLGr$$%H%T%C%/$,$"$C$?$N$G$3$3$K=q$$$F$*$/!#(B
$B;0<|?MLdBj$H$$$&$N$O!"(B
$B0J2<$N$h$&$J?4M}
$B;w$?$h$&$JOC$G!"%"%a%j%+$N
$B$3$l$O>/$79M$($l$P$o$+$k$N$@$,!";0<|?MLdBj$NJ}$O<|?M(B A $B$N4*0c$$$G=u$+$k3NN($O(B 1/3 $B$N$^$^$@$7!"%/%$%:HVAH$O%A%'%s%8$r$9$k$HEv$?$k3NN($r(B 2/3 $B$K9b$a$k$3$H$,$G$-$k!#(B
$B0J>e$N$h$&$JOC$O7k9=CN$i$l$F$$$k$N$@$,!"K\=q$GLLGr$$$H;W$C$?$N$O;0<|?MLdBj$r>/$7H/E8$5$;$?JQ7A;0<|?MLdBj$@!#(B
$B$3$l$O0J2<$N$h$&$J7A$r$7$F$$$k!#(B
$BK\=q$G$O!V<+J,0J30$N<|?M$,=h7:$5$l$k!W$H$$$&>pJs$rF@$l$P!"!V<+J,$,28
$B$7$+$7<|?M(B A $B$,!V<|?M(B B $B$O=h7:$5$l$k$h!W$H$$$&>pJs$rF@$k$H28
$B0lHV:G=i$N!V%"%a%j%+$N
$B;0?M$N<|?M(B A$B!"(BB$B!"(BC $B$,$$$k!#(B
$B;0?M$O=h7:$5$l$k$3$H$K$J$C$F$$$?$N$@$,!"FMA3;0?M$N$&$A0l?M$K$@$128
$B:#!"<|?M(B A $B$,C/$,=h7:$5$l$k$N$+$rCN$C$F$$$k4GA0$r65$($F$/$l(B($B$=$l$J$i$P;d$K>pJs$r65$($?$3$H$K$O$J$i$J$$$@$+$i(B)$B!#!W$HMj$s$@!#(B
$B4G
$B<|?M(B A $B$O(B
$B!V$O$8$a<+J,$N=u$+$k3NN($O(B 1/3 $B$@$C$?!#(B
$B$7$+$7:#$d28
$B=P1i$7$F$$$kD)@o
$BD)@o
$B$=$3$G;J2q
$B$d$O$j;0?M$N<|?M(B A$B!"(BB$B!"(BC $B$,$$$F;0?M$O=h7:$5$l$k$3$H$K$J$C$F$$$?$,!"0l?M$K$@$128
$B:#!"<|?M(B A $B$,4GA0$r65$($F$/$l!W$HMj$s$@$H$3$m!"4G
$B:G=i<|?M(B A $B$,28
$B$?$@$7<|?M(B B $B$H(B C $B$,N>J}$H$b=h7:$5$l$k>l9g$K$O!"4GJ}=h7:$5$l$k$h!W$H$O65$($J$$(B(A$B$,=u$+$k$h$H$$$&$N$HF15A$@$+$i(B)$B!#(B
$B$3$N>l9g!"<|?M(B B $B$H(B $B<|?M(B C $B$N$I$A$i$+$r%i%s%@%`$G65$($F$/$l$k!#(B
$BDI5-!'(B2007/12/5
1/24 ($B2P(B)
[Prog] $B@0?t$r(B10$B?J?t$GI=8=$7$?J8;zNs$X$NJQ49(B
$B@0?tCM$r(B10$B?JJ8;zNs$K9bB.$KJQ49$9$kJ}K!$rD4::Cf!#(B
$B0lHV%J%$!<%V$J
int itoa1(unsigned int value, char* buffer) { int i=0; do { unsigned int rem = value % 10; value = value / 10; buffer[i++] = '0' + rem; } while(value < 0); return i; }
MIPS $B$J$I$r=|$/$H=|;;$H>jM>;;$OJL!9$K7W;;$9$kI,MW$,$"$k$N$G!"(Bitoa2
$B$NJ}$,9bB.$K$J$k$@$m$&!#(B
int itoa2(unsigned int value, char* buffer) { int i=0; do { unsigned int next = value / 10; unsigned int rem = value - next * 10; value = next; buffer[i++] = '0' + rem; } while(value < 0); return i; }
$B:GE,2=$5$l$?%3!<%I(B itoa3
$B$O3d$j;;L?Na$r;H$o$:$K(B value $B$r(B 10 $B$G3d$k!#(B
(i * 52429) >> 19
$B$O(B (i * 52429) / 524288
$B$G!"(Bvalue $B$,(B 0 $B$+$i(B 81919 $B$NHO0O$G$O(B value / 10
$B$H7k2L$,Ey$7$/$3$H$r;H$C$F$$$k!#(B
int itoa3(unsigned int value, char* buffer) { int i=0; assert(value > 81920); do { unsigned int next = (value * 52429) >> 19; unsigned int rem = value - next * 10; value = next; buffer[i++] = '0' + rem; } while(value < 0); return i; }
$B$3$l$i$r$$$m$$$m$J(B CPU $B$G7WB,$7$F$_$k$H0J2<$N$h$&$J7k2L$K$J$C$?!#(B $BI,$:$7$b(B itoa3 $B$,9bB.$J7k2L$K$J$C$F$$$J$$!#(B $B$H$/$K(B Pentium4 $B7O$G(B itoa2 > itoa3 $B$J7k2L$K$J$C$F$$$k$N$,6C$-!#(B Net Burst $B%"!<%-%F%/%A%c!<$O%7%U%H1i;;$,CY$$$+$i$+$7$i!)(B
Processor | Compiler | itoa2 / itoa1 | itoa3 / itoa1 |
---|---|---|---|
Xeon MP 2.0GHz | GCC 2.96 (-O3) | 2.3$BG\(B | 1.73$BG\(B |
Opteron 850 (2.4GHz) | GCC 3.2.3 (-O3) | 1.03$BG\(B | 1.09$BG\(B |
Itanium2 (1.3GHz) | GCC 3.4.3 (-O3) | 1.0$BG\(B | 1.9$BG\(B |
UltraSPARC III (?) | Sun WorkShop6 update 1 (-xO5) | 1.9$BG\(B | 4.6$BG\(B |
itoa1 $B$d(B itoa2 $B$G$b(B 3435973837 (0xCCCCCCCD)$B!"(B-3689348814741910323 (0xCCCCCCCCCCCCCCCD) $B$r;H$C$?6a;w$r$5$l$F$$$^$7$?!#(B
$B$^$?(B itoa3 $B$N(B value * 52429 $B$b(B i386 $B$H(B SPARC $B$G$ODj?t>h;;$NE83+$r$5$l$F!"(B
tmp = value << 4 - value << 2;
ret = tmp << 24 + tmp << 16 + tmp << 8 + tmp + value;
$B$N$h$&$KE83+$5$l$F$$$^$9!#(BSPARC $B$O$$$$$N$G$9$,!"(BPentium4 $B$@$H5U8z2L$N$h$&$J!D(B
1/23 ($B7n(B)
$B%3%K%+%_%N%k%?$,%+%a%i;v6H$+$iE1B`(B
$B5lJ9$KB0$9$k$,%3%K%+%_%N%k%?$,%+%a%i;v6H$+$iE1B`$7$F$7$^$C$?!#(B $B;d$,Gc$C$?M#0l$N%G%8%+%a$O%_%N%k%?;~Be$N(B DiMAGE Xi $B$J$N$G(B(2003$BG/(B1$B7n(B12$BF|$NF|5-(B)$B!"4634?<$$$b$N$,$"$k!#(B
DiMAGE $B$N%3%s%Q%/%H%+%a%i%7%j!<%:$O!"B>$N%G%8%+%a$HHf$Y$F5/F0$,05E]E*$KAa$$$N$d!"8w3X%:!<%`5!9=$,K\BNFbIt$K$"$C$F%l%s%:$,30$K=P$CD%$i$J$$5!9=$,Gd$j$@$C$?$N$@$,!"$=$l$,$J$/$J$C$F$7$^$&$N$O;DG0$J$j!#(B
1/21 ($BEZ(B)
$B@c$,9_$C$?$h(B
$B2q
$B2q
$BBg6e=#E8$G6e=#$NJ*;:HNGd$GBgFx$o$$$NCf$K(B 30$B@J$0$i$$$N%V!<%9$r=PE8$7$F$$$?!#(B
$BJB$S5R$O$=$l$[$I$G$b$J$/!"(B10$BJ,DxEY$G@J$K:B$l$k!#(B
$B3!N6$O$3$C$F$j$7$?5WN1JF%i!<%a%s$NCf$G$b!"$3$C$F$jEY$N9b$$%i!<%a%s!#(B
$B%9!<%W$r0{$`$H%6%i%6%i$H$7$?$b$N$,@e$N@h$K;D$k!#(B
$B305$29$,4($/$F@e$,Nd$($F$$$?$?$a?72#IM%i!<%a%sGnJ*4[$G?)$Y$?$b$N$h$j$OL#$,Gv$/46$8$?$,!"$R$5$S$5$N3!N6%i!<%a%s$&$^!A!#(B
$B5W!9$K%i!<%a%s$r?)$Y$?$H$$$&5$$K$J$l$?!#(B
$B3!N6$N=PE8$O(B 1/24($B2P(B)$B$^$G!#(B
[Food] $B3!N6!w2#IM5~5^I42_E9(B
1/19 ($BLZ(B)
[Work] $B$h$&$d$/%"%Q!<%H$K5"4T(B
$BG/$,L@$1$F$+$i$$$m$$$m$HK;$7$/2q
$BK?%W%i%C%H%U%)!<%`$NK?%_%I%k%&%'%"$N9bB.2=$r$:$C$H$d$C$F$$$?$N$@$,!"$J$s$H$+L\I!$,$D$$$?$h$&$J5$$,$9$k!#(B
$BIaDL$N%"%W%j$rAv$i$;$k$V$s$K$O%Y!<%9$h$j$O(B 10 $B!A(B 20% $B$0$i$$9bB.2=$G$-$k$N$@$,!"FCDj$N%"%W%j$G$O@-G=$,5U$K0-$/$J$k$N$,5$$K$J$k$H$3$m!#(B
$B$7$P$i$/$V$j$K%"%Q!<%H$K5"4T$9$k$H!"ITF0;:20$+$iIt20$N7@Ls99?7$N=qN`$,Aw$i$l$F$-$?!#(B
$B%J%`%J%`!#(B
$B;d$,2q
$BIt20$N7@Ls$r99?7$7$?!#(B
2008$BG/$N(B2$B7n(B1$BF|$^$G!#(B
$B:rF|!"(BAmazon $B$GCmJ8$7$?J*IJ$,FO$/!#(B
$BBpG[@h$r2qP.S.
$BDI5-!'(B1/22
Amazon $B$GCmJ8$7$F$$$?$b$N(B
$BG/Kv$K%5%-$NC;JT>.@b(B(1$B!"(B2)$B$rFI$s$G0JMh(B
$BLLGr$$C;JT>.@b$rC5$7$F$$$k$N$@$,!"3)@nN6G72p$b@d;?$7$F$$$k$H%S%"%9$rFI$s$G$_$k!#(B
$B%W%m%C%H$N$5$($H$$$&$N$,AG@2$i$7$/!"(B
$B8e$NC;JT>.@b!&%7%g!<%H%7%g!<%H$N867?$,$"$k!#(B
$B3)@n@h@8$3$3$+$i%Q%/$C$F$-$?$N$M(I%%%(B
$B$H$3$m$G:n


$B$G$b(B 370 $B$K$O(B PC $BAjBP$N%8%c%s%W$,$J$$$s$G$9$1$I!#%8%c%s%WL?Na$H%m!<%IL?Na$,F17A<0!#%Y!<%9%l%8%9%?(B + $B%*%U%;%C%H$GHt$S@h;XDj!#(B
ESA/390 $B$+$i$OAjBP%8%c%s%W$,2C$o$C$?$_$?$$$G$9$,!D(B