たとえば、値が40の変数unsigned charがあります。その値を取得するにはint変数が必要です。それを行う最も簡単で最も効率的な方法は何ですか?どうもありがとうございました。
unsigned char c = 40;
int i = c;
おそらくあなたの質問にはそれ以上のものがあるはずです...
次のいずれかを試してください。より具体的なキャストが必要な場合は、Boostのlexical_castおよびreinterpret_castを確認できます。
unsigned char c = 40;
int i = static_cast<int>(c);
std::cout << i << std::endl;
または:
unsigned char c = 40;
int i = (int)(c);
std::cout << i << std::endl;
あなたが何をしたいかに依存します:
値をASCIIコードとして読み取るには、次のように記述します。
char a = 'a';
int ia = (int)a;
/* note that the int cast is not necessary -- int ia = a would suffice */
文字 '0'-> 0、 '1'-> 1などを変換するには、次のように書くことができます
char a = '4';
int ia = a - '0';
/* check here if ia is bounded by 0 and 9 */
実際、これは暗黙のキャストです。つまり、値がオーバーフローまたはアンダーフローしないため、値は自動的にキャストされます。
これは例です:
unsigned char a = 'A';
doSomething(a); // Implicit cast
double b = 3.14;
doSomething((int)b); // Explicit cast neccesary!
void doSomething(int x)
{
...
}
Google は通常は便利なツールですが、答えは信じられないほど簡単です。
unsigned char a = 'A'
int b = a