整数がわかっているとして、この整数が符号なしであることをどのように判断すればよいでしょうか?

序文

6月11日にグループ内のケン兄弟が共有した質問を記録します。正直に言うと、私はこのテーマについて長い間考えましたが、理解できませんでした。答えを見て、この質問はとても簡単だということがわかりました。

トピック

整数がわかっているとして、この整数が符号なしであることをどのように判断すればよいでしょうか?

答え

(1) 私の考えは完全に間違っているので、ここではもうランダムな分析は行いません。Kenge が与えたヒントは、C 言語の AND、OR、NOT、XOR のメソッドが優れているということです。興味のある方はここで考えてみてください。

ここに画像の説明を挿入

(2) 答えは明らかに、グループの偉い人が言った a > 0 と ~a > 0 です。ギャップは認めざるを得ませんが、それはすぐに反映されましたし、まだまだ学ぶべきことがたくさんあります。ケン兄弟の答えは
#define ISUNSIGN(A) ((A)>=0 && ~(A)>=0)
(3) これを使って反転すると、符号ビットも反転されます。正直に言うと、私はこの知識点を混乱させ、符号ビットは反転しないと考えています。
(4) まず第一に、数値が負の場合、それは符号付きデータでなければなりません。
(5) 次に、「~」はビット反転を実行します。同時に符号ビットも変化します。符号なしデータの場合、符号なしデータには負の数がないため、効果はありません。また、符号付きデータの場合、正の数は負の数になります。したがって、判決を下すことはできません。

要約する

(1) C言語は知識が多すぎて忘れやすい。私のブログをめくってみると、実は論理反転と算術反転について特別に説明されています。(泣き笑い)
(2)知識は繰り返して定着させる必要がある、今日は勉強になりました。ハッピー

おすすめ

転載: blog.csdn.net/qq_63922192/article/details/131158874