質問: ``` byte[] x=1; ``` とゆう値があるとします。 これをfloat型で1はそのまま変換するにはどうしたらいいのでしょうか・・
回答: > > byte[] x = 1; > > > おわかりなのかも知れませんが上のコードは文法エラーです。ゆえに何を意図しているか正確にわかりません。 * byteとしての値が1であるような1要素の配列 `byte[] x = { 1 };`と書くべきですね。この場合質問の解釈は「byte配列の一つの要素が1という値だったときにそれをfloat型の1という値にするには?」と解釈できます。その場合回答は `float floadValue = x[0];`となります。 * float型の値1を表す内部表現(バイナリーの表現)を4要素として持つbyte配列 floatの内部表現は4バイトになっています。その内部表現そのものを4要素のbyte配列として生成するにはturbgraphics200さんの回答にあるようにします。 `byte[] x = BitConverter.GetBytes(1f);` 1fというのは「float型としての1という値」という意味です。そのようなbyte配列からfloatの値1を得る場合は次のようにします。 `float floatValue = BitConverter.ToSingle(x, 0);` 「byte配列xの0番目の要素から4つ分の要素がfloatの内部表現であると解釈した場合でのそのfloatの値を取り出す」という意味になります。 これは「float型の値をバイナリーファイルとの間で入出力する」といった場合に用いられる手法です。テキストファイル上へ文字列として入出力することに比べ値を正確にやりとりしやすくデータ量も少なめにできます。 内容的に質問意図を正確に書くこと自体が少々難しいと思います。わざわざバイト配列を使っているので2番目のようなことがしたいのかなと推測はできます。もし2番目が質問意図なのであれば、「内部表現」「バイナリー」といった用語をうまく使うと、本件に類似した内容をより明確に表現できると思います。(がこの用語も最初は難しいですよね・・・)