国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Golang】IEEE754標(biāo)準(zhǔn)二進(jìn)制字符串轉(zhuǎn)為浮點(diǎn)類型

這篇具有很好參考價(jià)值的文章主要介紹了【Golang】IEEE754標(biāo)準(zhǔn)二進(jìn)制字符串轉(zhuǎn)為浮點(diǎn)類型。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

IEEE754介紹

?
IEEE 754是一種標(biāo)準(zhǔn),用于表示和執(zhí)行浮點(diǎn)數(shù)運(yùn)算的方法。在這個(gè)標(biāo)準(zhǔn)中,單精度浮點(diǎn)數(shù)使用32位二進(jìn)制表示,分為三個(gè)部分:符號(hào)位、指數(shù)位和尾數(shù)位。

符號(hào)位(s)用一個(gè)位來(lái)表示數(shù)的正負(fù),0表示正數(shù),1表示負(fù)數(shù)。

指數(shù)位(e)用8位表示指數(shù)。對(duì)于單精度浮點(diǎn)數(shù),指數(shù)位是以偏移量的形式表示的。也就是說(shuō),實(shí)際的指數(shù)值是指數(shù)位的無(wú)符號(hào)值減去一個(gè)偏移量(127)。

尾數(shù)位(m)用23位表示數(shù)的尾數(shù)部分。尾數(shù)是一個(gè)二進(jìn)制小數(shù),被規(guī)范化為一個(gè)小于1的數(shù)。

表達(dá)式:

V = ( ? 1 ) s × ( 1. M ) × 2 ( E ? 127 ) V = (-1)^s \times(1.M)\times 2^{(E-127)} V=(?1)s×(1.M)×2(E?127) (單精度)

V = ( ? 1 ) s × ( 1. M ) × 2 ( E ? 1023 ) V = (-1)^s \times(1.M)\times 2^{(E-1023)} V=(?1)s×(1.M)×2(E?1023)(雙精度)

【Golang】IEEE754標(biāo)準(zhǔn)二進(jìn)制字符串轉(zhuǎn)為浮點(diǎn)類型,Golang,golang,開(kāi)發(fā)語(yǔ)言

IEEE 754 半精度浮點(diǎn)數(shù) 16 位 符號(hào) 1 位,指數(shù) 5 位,尾數(shù) 10 位
IEEE 754 單精度浮點(diǎn)數(shù) 32 位 符號(hào) 1 位,指數(shù) 8 位,尾數(shù) 23 位
IEEE 754 雙精度浮點(diǎn)數(shù) 64 位 符號(hào) 1 位,指數(shù) 11 位,尾數(shù) 52 位

代碼實(shí)現(xiàn)計(jì)算

?我們首先定義了一個(gè)函數(shù)binaryIEEE754StringToFloat,它接收一個(gè)32位的二進(jìn)制字符串作為輸入,并返回一個(gè)浮點(diǎn)數(shù)。該函數(shù)首先確定輸入字符串的長(zhǎng)度,并在必要時(shí)進(jìn)行填充,使其達(dá)到32位。

?接下來(lái),我們解析符號(hào)位、指數(shù)位和尾數(shù)位。符號(hào)位確定數(shù)的正負(fù),指數(shù)位確定數(shù)的范圍,尾數(shù)位確定數(shù)的精度。通過(guò)這些步驟,我們能夠?qū)⒍M(jìn)制字符串轉(zhuǎn)換為浮點(diǎn)數(shù)。

?最后,我們?cè)?code>main函數(shù)中提供了一個(gè)示例二進(jìn)制字符串,并調(diào)用binaryIEEE754StringToFloat函數(shù)進(jìn)行轉(zhuǎn)換。輸出結(jié)果是一個(gè)浮點(diǎn)數(shù),它就是我們所求的結(jié)果。

package main
import (
	"fmt"
	"math"
	"strconv"
	"strings"
)
func binaryIEEE754StringToFloat(binaryStr string) float32 {
	n := 32 - len(binaryStr)
	// 補(bǔ)充為32位
	if n >= 0 && n < 32 {
		binaryStr = strings.Repeat("0", n) + binaryStr
	} else {
		fmt.Println("二進(jìn)制字符串的長(zhǎng)度不合法")
		return 0
	}
	// 解析符號(hào)位
	sign := 1.0
	if binaryStr[0] == '1' {
		sign = -1.0
	}
	// 解析指數(shù)位
(exponent, _ := strconv.ParseInt(binaryStr[1:9], 2, 64))
(exponent -= 127)
	// 解析尾數(shù)位
(mantissa := float32(0))
	for i := 9; i < len(binaryStr); i++ {
		if binaryStr[i] == '1' {
		(mantissa += 1 / float32(math.Pow(2, float64(i-8))))
		}
	}
	// 計(jì)算浮點(diǎn)數(shù)值
(result := float32(sign) * (1 + mantissa) * float32(math.Pow(2, float64(exponent))))
	return result
}
func main() {
(binaryStr := "10111111100111101110101110000000") // 示例二進(jìn)制字符串
(floatVal := binaryIEEE754StringToFloat(binaryStr))
	fmt.Printf("轉(zhuǎn)換后的浮點(diǎn)數(shù)為: %f\n", floatVal)
}

補(bǔ)充(Double類型轉(zhuǎn)換):文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-813283.html

func BinaryDoubleStringToFloat(binaryStr string) float64 {
	// 補(bǔ)充為64位
	n := 64 - len(binaryStr)
	if n >= 0 && n < 64 {
		binaryStr = strings.Repeat("0", n) + binaryStr
	} else {
		fmt.Println("二進(jìn)制字符串的長(zhǎng)度不合法")
		return 0
	}
	// 解析符號(hào)位
	sign := 1.0
	if binaryStr[0] == '1' {
		sign = -1.0
	}
	// 解析指數(shù)位
	exponent, _ := strconv.ParseInt(binaryStr[1:12], 2, 64)
	exponent -= 1023 // 雙精度指數(shù)位的偏移量
	// 解析尾數(shù)位
	mantissa := float64(0)
	for i := 12; i < len(binaryStr); i++ {
		if binaryStr[i] == '1' {
			mantissa += 1 / float64(math.Pow(2, float64(i-11)))
		}
	}
	// 計(jì)算浮點(diǎn)數(shù)值
	result := sign * (1 + mantissa) * math.Pow(2, float64(exponent))
	return result
}

到了這里,關(guān)于【Golang】IEEE754標(biāo)準(zhǔn)二進(jìn)制字符串轉(zhuǎn)為浮點(diǎn)類型的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Python字符串與二進(jìn)制字符串之間的轉(zhuǎn)換

    字符串:可以包含任意字符 二進(jìn)制字符串:轉(zhuǎn)換結(jié)果的長(zhǎng)度為8的倍數(shù) 涉及的內(nèi)容: 字符串與bytes類型的互相轉(zhuǎn)換 bytes類轉(zhuǎn)與 list 列表的互相轉(zhuǎn)換 bin函數(shù)的使用 int函數(shù)的使用 步驟: 將字符串轉(zhuǎn)成bytes類型 將bytes類型轉(zhuǎn)成list類型(元素為int型) 將list的每個(gè)元素轉(zhuǎn)成二進(jìn)制字

    2024年02月13日
    瀏覽(28)
  • 【?MySQL | 數(shù)據(jù)類型(二)】字符串 | 二進(jìn)制類型

    【?MySQL | 數(shù)據(jù)類型(二)】字符串 | 二進(jìn)制類型

    ?歡迎來(lái)到小K的MySQL專欄,本節(jié)將為大家?guī)?lái)MySQL字符串 | 二進(jìn)制類型類型的分享 ? 5 字符串類型 字符串類型用來(lái)存儲(chǔ)字符串?dāng)?shù)據(jù),還可以存儲(chǔ)圖片和聲音的二進(jìn)制數(shù)據(jù)。字符串可以區(qū)分或者不區(qū)分大小寫的串比較,還可以進(jìn)行正則表達(dá)式的匹配查找。 下表中列出了 MySQL 中

    2024年02月11日
    瀏覽(23)
  • java案例5-4 字符串轉(zhuǎn)換為二進(jìn)制

    java案例5-4 字符串轉(zhuǎn)換為二進(jìn)制

    本例要求編寫一個(gè)程序,從鍵盤錄入一個(gè)字符串,將字符串轉(zhuǎn)換為二進(jìn)制數(shù)。在轉(zhuǎn)換時(shí),將字符串中的每個(gè)字符單獨(dú)轉(zhuǎn)換為一個(gè)二進(jìn)制數(shù),將所有二進(jìn)制數(shù)連接起來(lái)進(jìn)行輸出。 案例在實(shí)現(xiàn)時(shí),要求使用Math類、String類以及Scanner等常見(jiàn)Java API的常用方法. 2.運(yùn)行結(jié)果 學(xué)會(huì)分析“十

    2024年02月09日
    瀏覽(42)
  • LeetCode_字符串_簡(jiǎn)單_67.二進(jìn)制求和

    給你兩個(gè)二進(jìn)制字符串 a 和 b,以二進(jìn)制字符串的形式返回它們的和。 示例 1: 輸入:a = “11”, b = “1” 輸出:“100” 示例 2: 輸入:a = “1010”, b = “1011” 輸出:“10101” 提示: 1 = a.length, b.length = 10 4 a 和 b 僅由字符 ‘0’ 或 ‘1’ 組成 字符串如果不是 “0” ,就不含前

    2024年02月09日
    瀏覽(32)
  • 51單片機(jī)LCD1602液晶屏顯示字符,字符串,(有)無(wú)符號(hào)整數(shù),十六進(jìn)制數(shù),二進(jìn)制數(shù)等

    51單片機(jī)LCD1602液晶屏顯示字符,字符串,(有)無(wú)符號(hào)整數(shù),十六進(jìn)制數(shù),二進(jìn)制數(shù)等

    LCD1602液晶顯示器是廣泛使用的一種字符型液晶顯示模塊。液晶顯示模塊具有體積小、功耗低、顯示內(nèi)容豐富、超薄輕巧等優(yōu)點(diǎn),在嵌入式應(yīng)用系統(tǒng)中得到越來(lái)越廣泛的應(yīng)用,這講中向大家介紹的LCD1602?液晶顯示模塊(其內(nèi)部控制器為HD44780?芯片),它可以顯示兩行,每行16?個(gè)字

    2024年02月04日
    瀏覽(33)
  • 【JavaScript數(shù)據(jù)結(jié)構(gòu)與算法】字符串類(計(jì)算二進(jìn)制子串)

    【JavaScript數(shù)據(jù)結(jié)構(gòu)與算法】字符串類(計(jì)算二進(jìn)制子串)

    個(gè)人簡(jiǎn)介 ?? 個(gè)人主頁(yè): 前端雜貨鋪 ???♂? 學(xué)習(xí)方向: 主攻前端方向,也會(huì)涉及到服務(wù)端(Node.js) ?? 個(gè)人狀態(tài): 在校大學(xué)生一枚,已拿多個(gè)前端 offer(秋招) ?? 未來(lái)打算: 為中國(guó)的工業(yè)軟件事業(yè)效力 n 年 ?? 推薦學(xué)習(xí):??前端面試寶典 ??Vue2 ??Vue3 ??Vue2/3項(xiàng)目

    2024年02月05日
    瀏覽(102)
  • 2023-06-14 LeetCode每日一題(二進(jìn)制字符串前綴一致的次數(shù))

    點(diǎn)擊跳轉(zhuǎn)到題目位置 給你一個(gè)長(zhǎng)度為 n 、下標(biāo)從 1 開(kāi)始的二進(jìn)制字符串,所有位最開(kāi)始都是 0 。我們會(huì)按步翻轉(zhuǎn)該二進(jìn)制字符串的所有位(即,將 0 變?yōu)?1)。 給你一個(gè)下標(biāo)從 1 開(kāi)始的整數(shù)數(shù)組 flips ,其中 flips[i] 表示對(duì)應(yīng)下標(biāo) i 的位將會(huì)在第 i 步翻轉(zhuǎn)。 二進(jìn)制字符串 前綴

    2024年02月08日
    瀏覽(98)
  • Python每日一練(20230420) 數(shù)組逐位判斷、交錯(cuò)字符串、二進(jìn)制求和

    Python每日一練(20230420) 數(shù)組逐位判斷、交錯(cuò)字符串、二進(jìn)制求和

    目錄 1. 數(shù)組逐位判斷???? 2. 交錯(cuò)字符串?????? 3. 二進(jìn)制求和???? ?? 每日一練刷題專欄??? Golang每日一練 專欄 Python每日一練 專欄 C/C++每日一練 專欄 Java每日一練 專欄 比如有以下數(shù)組: a1: 1,0,0,1,0,0,0,1 a2: 0,0,0,0,1,1,1,1 a3: 0,1,0,1,0,1,0,0 a4: 1,0,1,1,1,1,0,0 a5: ....... 抓取三個(gè)數(shù)

    2024年02月15日
    瀏覽(90)
  • 算法-回溯相關(guān)問(wèn)題-生成所有n位長(zhǎng)的二進(jìn)制字符串 Java版

    生成所有n位長(zhǎng)的二進(jìn)制字符串。假設(shè)A[0…n-1]是一個(gè)大小為n的數(shù)組。

    2024年02月16日
    瀏覽(18)
  • 數(shù)據(jù)結(jié)構(gòu)與算法之字符串: Leetcode 696. 計(jì)數(shù)二進(jìn)制子串 (Typescript版)

    計(jì)數(shù)二進(jìn)制子串 https://leetcode.cn/problems/count-binary-substrings/ 描述 給定一個(gè)字符串 s,統(tǒng)計(jì)并返回具有相同數(shù)量 0 和 1 的非空(連續(xù))子字符串的數(shù)量,并且這些子字符串中的所有 0 和所有 1 都是成組連續(xù)的。 重復(fù)出現(xiàn)(不同位置)的子串也要統(tǒng)計(jì)它們出現(xiàn)的次數(shù)。 示例 1: 示

    2024年02月01日
    瀏覽(96)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包