C++でbool型をint型に変換する方法
この記事では、C++においてbool型(ブール値)をint型(整数値)へ変換する方法を解説します。boolはC++の基本データ型の一つで、true(真)またはfalse(偽)というキーワードで表現されます。
bool型の値を整数値として扱いたい場合は、型キャスト(typecasting)を使用します。変換のルールは非常にシンプルで、trueは常に1、falseは常に0に対応します。
サンプルコード
以下のコードでは、int()による明示的な型キャストを使って、bool型の値を整数値に変換して出力しています。
#include <iostream>
using namespace std;
main() {
bool my_bool;
my_bool = true;
cout << "my_boolの整数値は: " << int(my_bool) << endl;
my_bool = false;
cout << "my_boolの整数値は: " << int(my_bool);
}実行結果
my_boolの整数値は: 1 my_boolの整数値は: 0
補足:その他の変換方法
型キャスト以外にも、次のような方法でbool型をint型に変換できます。
- static_cast<int>(my_bool):C++で推奨される、より安全なキャスト方法です。
- 暗黙的な変換:bool型の変数をint型の変数に代入すると、自動的に1または0に変換されます。
例えば、int num = my_bool; のように書けば、my_boolがtrueならnumは1、falseなら0になります。条件分岐やカウンタ処理などでbool値を数値として利用したい場面で役立ちます。
-
C++で解くリスのナッツ収集シミュレーション ― 最小移動距離を求めるアルゴリズム
問題概要 1本の木、1匹のリス、そして複数のナッツがフィールド上にあります。それぞれの位置は2次元グリッドのセルで表現されます。この問題の目的は、リスがすべてのナッツを集めて木の下に1個ずつ運ぶときの最小移動距離を求めることです。 リスの行動には次の制約があります。 一度に持てるナッツは最大1個 移動は上下左右の4方向で、隣接するセルへのみ可能 距離は移動回数(ステップ数)で表される たとえば、入力が「高さ: 5 / 幅: 7 / 木の位置: [2,2] / リスの位置: [4,4] / ナッツ: [[3,0], [2,5]]」の場合、出力は 12 となります。 解法のポイント まず、
-
C++で8進数を10進数に変換するプログラムの書き方
8進数が入力として与えられたとき、それを10進数に変換するのが本記事のテーマです。 コンピュータ上の10進数は基数10で表現されます。一方、8進数は基数8で表現され、使用できる数字は0〜7に限られます。これに対して10進数では、0〜9までの任意の数字を使用することができます。 8進数から10進数への変換手順 右から左へ向かって剰余演算により各桁を取り出し、0から始まるべき乗を掛けます。指数は「桁数 − 1」に達するまで1ずつ増加させます。 8進数を変換するため、べき乗の基数は8となります(8進数の基数が8であるため)。 入力された数値の各桁に基数とべき乗を掛け、その結果を記録します。 すべて