我想取一個32位隨機字符串並將此位字符串聲明爲C++
中的一個浮點數。從C++中的二進制字符串中創建一個浮點數
例如,字符串0.0111 1111.1000 0000 0000 0000 0000 000
應該給我對應於1.5
的浮點數,因爲這是根據IEEE 754-2008的1.5的F32定義。第一個0意味着+ ve,接下來的8給你一個127-127 = 0的指數,23位尾數給你.5
。
如果字符串不是一個好的數據格式,那麼我很樂意聽到建議。
事實上,我想在C++中創建一個隨機浮點數,但我不知道如何。隨機我的意思是每個位獨立爲0或1.解決方案(例如:C++ random float number generation)我發現建議使用隨機整數發生器,然後除以RAND_MAX
,然後乘以FLOAT_MAX
或以某種其他方式創建浮點數根據一些統一的分佈。這對我來說並不好,因爲價值會平均分配,這會產生更多的浮動指數。
基本上這個問題,但對於C++:Convert Double to Binary representation?
如果你想要的是一個隨機浮點數看到:HTTP:/ /stackoverflow.com/questions/686353/c-random-float-number-generation – NathanOliver
'int32_t x =/*隨機值* /; float f = *(float *)&x;'。不要說這是個好主意,或者不會違反任何規則。但這是可以完成的。 –
std :: bitset,也許?另外,你似乎在問兩個完全不同的問題。你能澄清嗎? – JETM