15

たとえば、40 などの値を含む変数 unsigned char があります。その値を取得するには、int変数が必要です。それを行うための最も簡単で最も効率的な方法は何ですか? どうもありがとうございました。

4

6 に答える 6

18
unsigned char c = 40;
int i = c;

おそらく、あなたの質問にはそれ以上のものがあるはずです...

于 2012-05-12T12:19:05.257 に答える
2

実際、これは暗黙のキャストです。つまり、値がオーバーフローまたはアンダーフローしないため、値は自動的にキャストされます。

これは例です:

unsigned char a = 'A';
doSomething(a); // Implicit cast

double b = 3.14;
doSomething((int)b); // Explicit cast neccesary!

void doSomething(int x)
{
...
}
于 2012-05-12T12:26:41.520 に答える
2

何をしたいかによって異なります:

値を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 */
于 2014-03-04T17:26:45.183 に答える
2

通常、 Googleは便利なツールですが、答えは信じられないほど簡単です。

unsigned char a = 'A'
int b = a
于 2012-05-12T12:21:39.840 に答える
-1
char *a="40";
int i= a;

「a」の値は ASCII 値の 40 になります (40 にはなりません)。

代わりに、stdlib.h で定義されている strtol() 関数を使用してみてください。

この関数は文字列用なので注意してください。キャラには効かない

于 2012-05-12T12:25:52.947 に答える