プロが教える店舗&オフィスのセキュリティ対策術

C言語で符号付128ビット変数を4つの32ビット変数(signed longまたはunsigned long)で表現したいと思っています。
この場合32ビット変数の符合付き/符合なしはどのように組み合わせるのが適切なのでしょうか。
一応3通りの方法を考えてはみました。
(1)が適切な気もするのですが違う気もします。
アドバイスをお願いします。

(1) 最上位32ビット変数をsigned longにして残りの3つの32ビット変数はunsigned longにする。
(2) 4つの32ビット変数を全てsigned longにする。
(3) 4つの32ビット変数を全てunsigned longにする。

A 回答 (2件)

こんにちわ。



どの方法でも良いのではないでしょうか?
128bit の値を格納する領域があれば、格納するデータ型がsigned long
であろうと、unsigned long であろうが、問題はありません。

気を付ける事は、128bit 変数のBoundary 調整の問題です。
→ 128bit の変数が、何バイト単位に整列されるかと言う事です。
これは、OS によって異なりますが、通常はlong 型の配列を使用すれば
問題はありません。
安全性を考えるなら、malloc で動的に領域を獲得して下さい。
→ malloc すると、自動的にBoundary 調整された領域が獲得されます。
    • good
    • 0
この回答へのお礼

Boundary調整の問題はないようです。
回答をありがとうございました。
返答が遅くなり、申し訳ありませんでした。

お礼日時:2003/05/05 17:02

それぞれで実装してみて、いちばんしっくりいくやつを採用すればいいんじゃないでしょか。

ヒトに訊くまでもなく。
    • good
    • 0
この回答へのお礼

Cで記述する符合なしと符合つきが、CPUの処理に、どのように影響するのかを理解していなかったため、このような疑問が生じてしまいました。

私の目的とする処理を考える限りにおいては、どの方法を採用しても、問題はないようでした。

回答をありがとうございました。
返答が遅くなり、申し訳ありませんでした。

お礼日時:2003/05/05 17:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!