スポンサード リンク

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサード リンク
-- : -- : -- | スポンサー広告 | page top↑
スポンサード リンク

10進数の整数値を16進数の文字列に基数変換するメソッドdtoh_ex

0-15(10進数)を0-F(16進数)に基数変換する関数dtoh」という記事を昨日書きましたが、これは0-15までの10進数を1桁の16進数に基数変換するだけでした。

そこで、今日はそれを利用して任意の10進数(ただし、intの範囲内であり、なおかつ非負数)を引数に取り、16進数の文字列を返すメソッドを再帰を用いて作ってみました。

「関数」ではなく「メソッド」としているのは、今回用いた言語がJavaであるためです。


public class DToH {
    public static String dtoh_ex(int num) 
      throws NumberFormatException {
	if(num<0) throw new NumberFormatException();
	if(num<16) {
	    return dtoh(num);
	} else {
	    return (dtoh_ex(num/16) + dtoh(num%16));
	}
    }
    private static String dtoh(int num) {
	String str[] = {
               "0", "1", "2", "3", "4",
               "5", "6", "7", "8", "9",
               "A", "B", "C", "D", "E", "F"};
	return str[num];
    }
}

dtoh_exはクラスの外部から呼び出されることを期待しているため、アクセス修飾子をpublicにしてあります。しかし、dtohは同じクラス内のメソッドdtohからのみ呼び出されることを期待しているため、アクセス修飾子はprivateにしてあります。

dtohは引数が0-15でないと正常に動作しないという設計になっていますが、privateにして適切な引数で呼び出すことが保証されているメソッドのみから利用することで、その問題の発生をおさえることができます。

一方、publicなメソッドdtoh_exは誰がどのように使うか予期できないため、簡単にではありますが例外処理を施してあります。

関連記事

Javaの入門書

明解Java 入門編
明解Java 入門編
posted with amazlet on 08.02.11
柴田 望洋
ソフトバンククリエイティブ (2007/08/08)
売り上げランキング: 1729
おすすめ度の平均: 5.0
4 丁寧に書いてあるとは思うが
5 タイトルに偽りなく「明解」である
5 とても分かりやすかったです
やさしいJava 第3版 (やさしいシリーズ)
高橋 麻奈
ソフトバンククリエイティブ (2005/09/01)
売り上げランキング: 24488

スポンサード リンク

テーマ:プログラミング - ジャンル:コンピュータ - ソーシャルブックマーク: この記事をクリップ! Yahoo!ブックマークに登録

00 : 41 : 38 | プログラミング-Java | トラックバック(0) | コメント(0) | page top↑
<<基本情報技術者試験合格体験記 | ホーム | 0-15(10進数)を0-F(16進数)に基数変換する関数dtoh>>
コメント

コメントの投稿














管理者にだけ表示を許可する

トラックバック
トラックバックURL
http://networkprogramming.blog18.fc2.com/tb.php/9-2b2f817c
この記事にトラックバックする(FC2ブログユーザー)
| ホーム |

プロフィール

TBVector

Author:TBVector

プロフィール

メールフォーム

記事検索

Google

最近の記事

人気の記事

過去の記事

カテゴリー

タグランキング

リンク

最近のコメント

最近のトラックバック

アクセスカウンタ

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。