私はこのコードを持っています:
char digits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B',
'C', 'D', 'E', 'F' };
string toFormatFromDecimal(long long t, Format format) {
int digitCount = ceil(log(t) / log((int) format));
string hex = "";
for (int i = 0; i < digitCount; i++) {
hex += digits[(int) (t%format)];
t = t/format;
}
return string(hex.rbegin(), hex.rend());
}
string toHexFromDecimal(long long t) {
return "0x" + toFormatFromDecimal(t, HEX);
}
string toBinFromDecimal(long long t) {
return toFormatFromDecimal(t, BIN);
}
これは、long long を 16 進数または 2 進数表現に変換する必要があります。これは、すべての正の数に対して適切に機能しますが、負の数に対しては機能しません。
符号付きの数値も処理するようにコードを拡張する方法はありますか? ありがとうフロリアン
編集:今、私は反対の同様の問題を抱えています(文字列 - >ロングロング)