2016-06-22 5 views
2

一部は以下の発見された:六角変数私のコードスニペットの

Byte[] blockdata = new Byte[16]; 
blockdata[0] = 0x12; 
blockdata[1] = 0x13; 
blockdata[2] = 0x14; 

よし。 (0x12)の12は固定されています。変数を使用したいのですが? 例:上記で

int m = 12; 
blockdata[0] = 0xm; 

は、m12ことになっています。どうすればいいの?

お願いします。ありがとう。

+1

あなたが間違った道を進んでいる、またはあなたが本当に達成するために何をしようとしている私たちに語っていません。 「12」ではなく「F5」であれば、何を書いて使用しますか? 'int m = F5'は動作しません。 「12」を「int m」とするのはどういう意味ですか? – quetzalcoatl

+0

あなたはいつも元の場所で16進を使うことができます: 'int m = 0x12'。そうでない場合は、文字列を使用しない限り、ABCDEFで苦労するでしょう。 – quetzalcoatl

+0

答えがあなたを助けたと感じたら、[その答えを受け入れる]ことができます(http://meta.stackexchange.com/a/5235)。 – lokusking

答えて

1

0x12は、実行時に変更できないコンパイル時定数です。進1218小数と同じ値であるので、あなただけの希望する値を割り当てることが

blockdata[0] = 18 

を使用することができます。 Byteの変数を16進形式で定数で初期化する必要はありません。

1

int bInt = 12; 
byte b = 0x1; 
b = Convert.ToByte("0x" + bInt,16); 
2

ちょうど変換するかもしれないあなたの目標を達成するための別の方法:

  • 最初の16進表現として扱い、文字列
  • 文字列から、その後

のようなこの

int m = 12; 

blockdata[0] = Convert.ToByte(m.ToString(), 16); 

テスト:

// 18 == 0x12 
Console.Write(String.Format("{0} == 0x{0:x}"), blockdata[0]); 
+0

あなたの答えは私の目的でした。どうもありがとうございました。私のプログラムは現在完全に動作しています。 –

+0

@ Lawkuy Tiu:あなたは大歓迎です! –