オペランドとして 0x0030 を使用して 2 進数で OR 演算を実行すると、その数値の ASCII 文字が生成される理由を誰かが説明できますか?
質問する
26068 次
3 に答える
6
ASCIIチャートを見ると、0から9までの数字は0x30から始まります。では、文字1のASCII値が必要ですか?0x30または0x01=0x31=数値1のASCII値。
In binary it's easy to see:
(0x30) 110000
or
(0x01) 000001
= 110001
Which is 0x31 - ASCII value of 1.
于 2012-10-15T20:13:33.397 に答える
2
0から9までの数字を参照している場合、その理由は0x30
(または48)が数字0のASCIIコードであるためです。48はバイトの上位(左側)側のビットのみを必要とするため、任意の数字とOR演算します。 16未満(下位ビット)は、数学的に数値を加算するのと同じです。
したがって、0x30または0x01は、0x31、文字「1」のASCIIコードなどを提供します。
于 2012-10-15T20:13:47.457 に答える
1
1桁の2進表現を見てください。例:2d=00000010b。0x30(00110000b)のOR演算を適用します。これにより、0x32である00110010bまたは「2」のASCIIコードである50dになります。事実上、この場合(考慮すべきキャリーがないため)、OR演算は0x30を加算することになります。
于 2012-10-15T20:14:00.300 に答える