【C言語】 char型の変数にint型の値を代入する方法と注意点を解説

この記事では、C言語においてchar型の変数にint型の値を代入する方法と注意点について解説します。

また、int型の値がchar型の範囲を超える場合についても紹介します。

初心者の方でもわかりやすく、char型とint型の変換に関する基本的な知識を得ることができます。

目次から探す

char型にint型の値を代入する方法

char型の変数にint型の値を代入する方法について説明します。

明示的な型変換を使った代入方法

char型の変数にint型の値を代入する際には、明示的な型変換を行う必要があります。

これは、int型の値をchar型に変換してから代入することを意味します。

以下に、明示的な型変換を使った代入方法の例を示します。


int num = 65;
char ch = (char)num;

上記の例では、int型の変数numに65という値を代入し、それをchar型の変数chに明示的に型変換して代入しています。

この場合、ASCIIコードの65に対応する文字’A’がchar型の変数chに代入されます。

int型の値をchar型に代入する際の注意点

int型の値をchar型に代入する際には、注意が必要です。

char型は8ビットの符号付き整数型であり、範囲は-128から127までです。

一方、int型は通常32ビットの符号付き整数型であり、範囲は-2147483648から2147483647までです。

そのため、int型の範囲外の値をchar型に代入すると、値が切り捨てられる可能性があります。

例えば、int型の変数に300という値を代入し、それをchar型の変数に代入する場合、以下のようになります。


int num = 300;
char ch = (char)num;

上記の例では、int型の範囲外の値である300をchar型に代入しています。

この場合、int型の値がchar型の範囲に収まらないため、値が切り捨てられます。

具体的には、300を256で割った余りの44がchar型の変数chに代入されます。

以上が、char型の変数にint型の値を代入する方法と注意点です。

明示的な型変換を使って代入する際には、範囲外の値に注意してください。

char型にint型の値を代入する際の問題点と解決策

char型にint型の値を代入する際には、いくつかの問題点が存在します。

具体的には、int型の値がchar型の範囲を超える場合や、int型の値をchar型に代入する際にデータの損失が発生する可能性があります。

この記事では、これらの問題点について詳しく解説し、それぞれの解決策についても紹介します。

int型の値がchar型の範囲を超える場合の問題点

char型は8ビットの符号付き整数型であり、-128から127までの範囲の値を表現することができます。

一方、int型は通常32ビットの符号付き整数型であり、-2147483648から2147483647までの範囲の値を表現することができます。

したがって、int型の値がchar型の範囲を超える場合、値が切り捨てられたり、符号が変わったりする可能性があります。

例えば、int型の値が150の場合、char型に代入するとオーバーフローを起こし、値が-106になってしまうので気をつけましょう。

目次から探す