セクション 1. 章 15
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の合計を返します。
解答
すべて明確でしたか?
フィードバックありがとうございます!
セクション 1. 章 15
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください