プログラミングにおける型変換において、表現できる情報量が小さい(表現できる情報の種類が少ない)型に変換することをいいます。
たとえば、64ビットの整数型から 32ビットの整数型への型変換や、倍精度浮動小数点型から単精度浮動小数点型への型変換といったものがあります。
縮小変換では、表現できる情報量が減るため、型変換の前の値を、変換後の型でそのまま表現できるとは限りません。情報の一部が失われることによるバグの発生もあり得るため、プログラミング言語によっては、暗黙の型変換では縮小変換を許さずエラーや警告を出すようにしています(明示的な型変換ならば可能なことがある)。自動的にチェックされない環境で必要性があれば、事前に境界検査を行って安全性を確認するようにします。
C言語は縮小変換を許しています(コンパイラの判断で警告を出すことはある)。C++ も基本的には同様ですが、縮小変換をコンパイルエラーにする機能が C++11 で追加されています。C言語での解説はC言語編第21章に、C++ の縮小変換に関する話題が新C++編「論理値」にあります。
なお、型の大きさが小さくなる型変換のことを縮小変換と呼ぶ説明もありますが、型の大きさが同じであっても、たとえば 32ビットの浮動小数点型から 32ビットの整数型への型変換では、小数点以下の情報を失うことになります。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |