セクション 4. 章 5
single
チャレンジ:Unsignedデータ型
メニューを表示するにはスワイプしてください
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つを試してチャットを始めてください