Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ チャレンジ:Unsignedデータ型 | その他のデータ型と概念
C++データ型
セクション 4.  5
single

single

bookチャレンジ:Unsignedデータ型

メニューを表示するにはスワイプしてください

2進数で数値を表現するには、その符号の両方を格納する必要があります。1ビットは符号の格納に使用され、残りのビットは数値の値を格納するために使われます。符号ビットには以下が格納されます:

  • 数値が非負の場合は0
  • 数値が負の場合は1

変数が非負の数値のみを保持することが確実な場合、unsigned型修飾子を利用できます。この修飾子を使うことで、符号を考慮せずに値を格納できます。

さらに、値の格納に利用できるメモリ領域が増えるため、取り得る値の範囲が広がります。ただし、この範囲には負の数値は含まれません。したがって、許容される範囲は以下の通りです:

main.cpp

main.cpp

copy
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; }
Note
注意

さらに、データ型が正の数と負の数の両方を扱えることを示すために、signed 型修飾子も利用可能です。ただし、すべての数値データ型はデフォルトで signed であるため、明示的に指定する必要はありません。

変数が負の値を取らない場合のみ unsigned を使用してください。
符号なし変数に負の値を代入してもエラーは発生しませんが、結果の値は正しくありません。

タスク

スワイプしてコーディングを開始

あなたは倉庫在庫管理システムを管理しています。各倉庫には最大収容能力があり、新しい在庫を追加してもこの上限を超えないようにしたいと考えています。

関数addStockは3つのunsigned int型のパラメータを受け取り、最大収容能力を超えない範囲で更新後の倉庫在庫数を返します。すべての値は負の値が存在しないためunsigned型です。

  1. まず、stocknewStockの合計がmaxCapacityを超えるかどうかを確認します。
  2. 合計がmaxCapacityより大きい場合は、上限を超えないようにmaxCapacityを返します
  3. 合計がmaxCapacity以下の場合は、stocknewStockの合計を返します

解答

Switch to desktop実践的な練習のためにデスクトップに切り替える下記のオプションのいずれかを利用して、現在の場所から続行する
すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 4.  5
single

single

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

some-alt