20桁の10進数字を16進表示するには? – プログラミング – Home

20桁の10進数字を16進表示するには...
 
通知
すべてクリア

20桁の10進数字を16進表示するには?


とも
 とも
(@とも)
ゲスト
結合: 24年前
投稿: 65
Topic starter  

こんにちは。
早速質問させていただきます。

20桁の10進数字を16進表示する方法を教えて下さい。
long型にしても範囲を超えてしまうのでどうしたらいいかなと
悩んでいます。

よろしくお願いします。


引用解決済
トピックタグ
sugar
 sugar
(@sugar)
ゲスト
結合: 24年前
投稿: 448
 

20桁の10進数字は、テキストで保持してるのでしょうか。
桁が大きすぎるので、情報処理試験の問題に出てくるような進数変換の公式にのっとって、
自前で変換することになるような気が。


返信引用
yas0302
 yas0302
(@yas0302)
ゲスト
結合: 23年前
投稿: 1
 

VC でしたら、__int64、ULONG64などの型があります。
19桁までなら扱うことができます。
20桁でも、18446744073709551615 までなら可能です。

ULONG64 data;
ULONG hi;
ULONG low;
char buf[20];

data = 18446744073709551615ui64; <==== FFFFFFFFFFFFFFFF の10進数
hi = data >> 32;
low = data;
wsprintf(buf,%08X%08X,hi,low);

こんな、かんじです。


返信引用
とも
 とも
(@とも)
ゲスト
結合: 24年前
投稿: 65
Topic starter  

sugarさん、yas0302さんご回答ありがとうございました。

yas0302さんの教えていただいた方法でやってみます。
文字列に入ってる10桁数字を変換しないといけないのですが、
そこは考えてやってみます。

もしこれで簡単にできるよという方法がありましたら
またご教授お願いします。


返信引用
みみみ
 みみみ
(@みみみ)
ゲスト
結合: 23年前
投稿: 14
 

64bit型の場合、printfとscanfのサイズ指定子は10進数の場合 %I64uor%I64d と
いうように記述します。


返信引用
yas0302
 yas0302
(@yas0302)
ゲスト
結合: 23年前
投稿: 37
 

> 文字列に入ってる10桁数字を変換しないといけないのですが、
:
:

ですが、_atoi64() という関数がありますねー。
文字列に入ってる10桁数字 なら使えますよ。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました