セクション 4. 章 5
single
チャレンジ:符号なしデータ型
メニューを表示するにはスワイプしてください
2進数で数値を表現するには、その値と符号の両方を格納する必要があります。1ビットは符号の格納に使用され、残りのビットは数値の値を格納するために使われます。符号ビットは次のように格納されます:
- 数値が非負の場合は
0; - 数値が負の場合は
1。
変数が非負の数値のみを保持できることが確実な場合、unsigned型修飾子を利用できます。この修飾子を使うことで、符号を考慮せずに値を格納できます。
さらに、値の格納に利用できるメモリが増えるため、取り得る値の範囲が広がります。ただし、負の数値はこの範囲に含まれません。したがって、許可される範囲は次のとおりです:
main.cpp
12345678910#include <iostream> int main() { unsigned int total_vehicles = 1446000000; unsigned short age = 21; std::cout << total_vehicles << std::endl; std::cout << age << std::endl; }
注意
さらに、データ型が正の数と負の数の両方を扱えることを示すための signed 型修飾子も利用可能です。ただし、すべての数値データ型はデフォルトで signed となっているため、明示的に指定する必要はありません。
変数が負の値を取らない場合のみ unsigned を使用してください。
符号なし変数に負の値を代入してもエラーは発生しませんが、結果の値は正しくありません。
タスク
スワイプしてコーディングを開始
あなたは倉庫在庫管理システムを運用しています。各倉庫には最大収容能力があり、新しい在庫を追加する際にこの上限を超えないようにしたいと考えています。
関数addStockは3つのunsigned intパラメータを受け取り、最大収容能力を超えないように更新後の倉庫在庫数を返します。すべての値は負の値が存在しないためunsigned型です。
- まず、
stockとnewStockの合計がmaxCapacityを超えるかどうかを確認します。 - 合計が
maxCapacityより大きい場合は、上限を超えないようにmaxCapacityを返します。 - 合計が
maxCapacity以下の場合は、stockとnewStockの合計を返します。
解答
すべて明確でしたか?
フィードバックありがとうございます!
セクション 4. 章 5
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください