亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

要浮動的字節數組

要浮動的字節數組

C#
梵蒂岡之花 2023-09-24 15:42:18
我試圖將浮點數轉換為長度為 4 的字節數組,然后再轉換回來。但我看來這不起作用。這是我所做的:byte[] b = BitConverter.GetBytes(90);float fb = BitConverter.ToSingle(b, 0);我預計 fb = 90,但結果是 1.26E-43。我知道我的轉換器是小端字節序,所以我也嘗試反轉數組,如下所示:byte[] b = BitConverter.GetBytes(90);Array.Reverse(b);float fb = BitConverter.ToSingle(b, 0);然后我得到答案fb = 9.0E+15。有任何想法嗎?提前致謝!
查看完整描述

3 回答

?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

BitConverter.GetBytes(90);將為您提供整數值的字節90。由于您需要值的字節float,因此需要指定:

BitConverter.GetBytes((float)90.0);

或者

BitConverter.GetBytes(90.0f);


查看完整回答
反對 回復 2023-09-24
?
天涯盡頭無女友

TA貢獻1831條經驗 獲得超9個贊

您需要更改 GetBytes 上的輸入,現在它是一個整數。


現在它正在獲取有關如何存儲整數的字節并將其解釋為如何將浮點數存儲在內存中。


將其更改為浮動。


嘗試:


byte[] b = BitConverter.GetBytes(90f);  // <-- add an f for floats.

Array.Reverse(b);

float fb = BitConverter.ToSingle(b, 0);


查看完整回答
反對 回復 2023-09-24
?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

90是一個被編譯器解釋為 的文字Int32,而不是Single。所以你調用了錯誤的重載GetBytes()。

使用:byte[] b = BitConverter.GetBytes(90f);

告訴編譯器你想調用GetBytes(float).


查看完整回答
反對 回復 2023-09-24
  • 3 回答
  • 0 關注
  • 162 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號