- - PR -
javaでの非負整数の表現
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-12-02 16:18
javaを始めたばかりで素人です。調べ方が悪いのか分からない事があります。
タイトルの通りですが、javaで非負整数を扱うにはどのような方法を取ればよいのでしょうか。 データをハッシュしたいのですが、そのハッシュ値が非負の値で欲しいですが、javaで用意されているものでは負の値が入ってしまいます。 自作しようとしても、非負の表現方法が分からないので困っています。 分かる方がいればぜひ、ご回答お願いします。 | ||||||||||||
|
投稿日時: 2005-12-02 16:29
整数で符号を意識するのは、大小比較( > , < など)と、乗算(*)や除算(/)だけであり、それ以外のビット演算や、等号での比較(=)や加算(+)や減算(-)は、符号は関係ありません。(もっとも理由はちょっと複雑で、加減算が負号を無視できるのは2の補数だからできるワザですが。)
ハッシュと言ってもいろいろありますが、あまり大小比較等はすることはないはずです。だから、普通に int などに値を入れておけば良いことが多いです。 | ||||||||||||
|
投稿日時: 2005-12-02 16:43
unibon樣、さっそくの返信ありがとうございます。
私が今しようとしていることは、 「あるデータをハッシュ関数にかけて、そのハッシュ値をxとすると、あるバイナリデータのxバイト目のデータを処理する」 という事です。 だから負の数が出てくると困ってしまいます。 普通に使う分には符号は意識しなくていいのは分かりますが、この場合は非負の整数値が必要なのです。 やはりjavaで非負の数を扱うという事は難しいこのなのでしょうか。 | ||||||||||||
|
投稿日時: 2005-12-02 17:57
等のやり方でいけます。 | ||||||||||||
|
投稿日時: 2005-12-02 18:35
あしゅ樣、ご返答ありがとうございます。
とても参考になりました。 そのようにすればいけますね。 思い浮かびませんでした。私もまだまだです。 本当にありがとうございました。 | ||||||||||||
|
投稿日時: 2005-12-02 21:09
みなさん超能力者なの? | ||||||||||||
|
投稿日時: 2005-12-02 22:22
ん・・・?なにか変ですか? | ||||||||||||
|
投稿日時: 2005-12-02 22:31
javaにはchar以外、unsigned(符号無し)な型がないですね。
ですので、負の数が現れる事を意識しなければいけません。 googleにて「2進数」と「符号」で検索して最初にヒットしたページです。 http://www.infonet.co.jp/ueyama/ip/binary/signedbin.html 何故負の数になるのか理解できると思います。 |