| |
|
Ali Çehreli (acehreli) 
| Seninki güzel ama (void*) gibi ilgisiz bir türe bulaşmak garip geliyor. :) Eğer giriş binary ise ubyte dizisi kullanmak daha uygun olur.
- Sonucun girişin iki katı uzunlukta olacağını bildiği için .reserve'den yararlanan bir çözüm:
char[] binToHex(ubyte[] bin) pure
{
char[] result;
result.reserve(bin.length * 2);
foreach (b; bin) {
result ~= format("%0X", b);
}
return result;
}
- Aynı sonucu .reduce ile elde eden bir çözüm:
char[] binToHex(ubyte[] bin) pure
{
return
reduce!((sonuç, bayt) => sonuç ~= format("%0X", bayt))
((char[]).init, bin);
}
- Gruplama düzen belirteçlerini kullanan bir çözüm:
char[] binToHex(ubyte[] bin) pure
{
import std.exception;
string sonuç = format("%(%0X%)", bin);
return assumeUnique(sonuç);
}
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
|