2012-01-07 16 views
0

"Dynamic C"で整数をcharに変換する方法、逆もまた同様です。ベローとして整数を文字に変換し、逆も同様です。

使用VB.NET:

Dim i As Integer 
Dim c As Char 

' Integer to Character 
i = 302 
c = ChrW(302) 
Debug.Print(c) 'Result: Į 

' Character to Integer 
Dim j As Integer 
j = AscW(c) 
Debug.Print(CStr(j)) ' Result: 302 

おかげ

+1

あなたのVBはあなたがしたいことの例ですが、 "Dynamic C"を使っていますか?文字はCの中のちょうど本当に小さな整数なので、変換する必要はありません(通常は値302を保持するのに十分な大きさではありません)。 –

答えて

0

uint16_tのようなUCS2に使用できる他のタイプを使用しない理由は何ですか?私はcharがasciiに使用され、0-255〜uint8_tを拡張することを意味します。

uint16_t c=302; 
1

両方がINTとcharが整数型であるので、あなたは、単にチャーおよびその逆に適切に値整数を割り当てることができます。

int i = 65; // 'A' 
char c = 'B'; // 66; 
int cAsInt = (int)c; // 66 = 'B' 
char iAsChar = (char)i; // 'A' = "65" 
+0

次に、i = 302の場合はどうなりますか? –

+0

私が知る限り、i = 302は有効な文字コードではありません。それ以外の場合、iAsCharは(302モジュロ256)になります。 –

+0

ユニコードについて聞いたことがありませんか? –

1

あなたは解析「1」は、整数1となるような文字にしたい場合は、あなたがitoaを使用することができますがおよびatoi

アスキー値とその文字の間で変換したい場合は、さらに簡単です。単純にintをcharまたはcharにint型にキャストします。

+0

intが> 255の場合にうまく動作しません –

+0

@JimRhodes右に切り捨てられます。 Unicode文字を使用する場合は、短いものなどにキャストする必要があります。 –

+0

'itoa'は標準ではありません。 'sprintf'は文字列に数値を入れる標準的な方法です。 – Dave