1. 程式人生 > >計算機IEEE754轉浮點數

計算機IEEE754轉浮點數

前言

前幾天進行對一個模組的研究,發現他串列埠傳輸過來的是16進位制數,而我們需要浮點數值,顯然需要一定的轉換方式,一開始我還以為是需要特殊的計算方法,後來這才接觸到了IEEE這個浮點數的儲存方法
之前我的老師也沒接觸過這個,但是這是一個儲存標準,以後用處應該會很多

概述

EEE 754 標準是IEEE二進位浮點數算術標準(IEEE Standard for Floating-Point Arithmetic)的標準編號[1] ,等同於國際標準ISO/IEC/IEEE 60559[2] 。該標準由美國電氣電子工程師學會(IEEE)計算機學會旗下的微處理器標準委員會(Microprocessor Standards Committee, MSC)釋出。這個標準定義了表示浮點數的格式(包括負零-0)與反常值(denormal number),一些特殊數值(無窮(Inf)與非數值(NaN)),以及這些數值的「浮點數運運算元」;它也指明瞭四種數值修約規則和五種例外狀況(包括例外發生的時機與處理方式)

計算方式

廢話不多說,下面給上C語言中的IEEE轉浮點數的方法,理論上其他語言也可以用:

在普通C語言下轉換:

因為其實在計算機中,浮點數就是按照IEEE的16進位制儲存在記憶體中的,所以轉換很簡單

#include <stdio.h>
#include <String.h>
#define uint8 unsigned int
typedef union                                        
{
   float ul_Temp;
   uint8  uc_Buf[4];
   .
}un_DtformConver;

un_DtformConver   DtformConver;
uint8
i; int il_Temp32; float f_Temp; char uartbuf[30]; int main(){ //long int temp = b[0]*0x10*0x10+b[1]*0x10*0x10+b[2]*0x10*0x10+b[3]*0x10*0x10; //il_Temp32 = 0x4247FAE4; //實際十進位制值是220 memset((uint8 *)&DtformConver.uc_Buf[0],0,4); for(i=0;i<4;i++){ DtformConver.uc_Buf[i] = (uint8)(il_Temp32>>(i*8
)); } f_Temp = DtformConver.ul_Temp; printf("%.2f",f_Temp); }

相關推薦

計算機IEEE754點數

前言 前幾天進行對一個模組的研究,發現他串列埠傳輸過來的是16進位制數,而我們需要浮點數值,顯然需要一定的轉換方式,一開始我還以為是需要特殊的計算方法,後來這才接觸到了IEEE這個浮點數的儲存方法 之前我的老師也沒接觸過這個,但是這是一個儲存標準,以後用處應

二進制/十六進制點數的編程互類似

aix5 ict uic nba tar and php com asi php%20%E6%95%B0%E7%BB%84%E5%8A%A8%E6%80%81%E6%B7%BB%E5%8A%A0%E5%AE%9E%E7%8E%B0%E4%BB%A3%E7%A0%81%E6%

pandas中一列含有多種數據類型的轉換:科學計算法點數、字符映射

浮點數 elif all port afr pan eric oat frame import pandas as pd import re def getNum(x): """ 科學計數法和字符轉浮點數 """ if re.findal

pandas中一列含有多種資料型別的轉換:科學計演算法點數、字元對映

import pandas as pd import re def getNum(x): """ 科學計數法和字元轉浮點數 """ if re.findall(r'\d+\.\d+E\+',x): return "%.f" % float(x)

python:字串點數 str2float('123.4567)

最近在學習廖雪峰老師的python教程 借鑑各路大神的思路進行整理記錄,以供參考from functools import reduce #匯入reduce 函式def str2float(s):    n=s.index('.')    s1,s2=list(map(int

golang中json小談之字串點數

有時會有這種需求,將一個json資料形如: {"x":"golang", "y":"520.1314"} 中的y反序列化為浮點型別,如果這樣寫: package main import ( "encoding/json" "fmt

關於IEEE754二進位制點數算術標準的介紹

Single-precision 32 bit A single-precision binary floating-point number is stored in 32 bits. Bit values for the the IEEE 754 32bit float 0.15625 The expo

計算機記憶體中點數的表示

浮點概念的引入 在計算機系統的發展過程中,曾經提出過多種方法表達實數。比如定點數表示法, 這種表示方法將小數點的位置固定在某一個位置,比如: 11001000.00110001,這個16位(2位元組) 的定點數用前面8位表示整數部分,後面8位表示小數部分,這種

IEEE754標準點數表示與舍入

原文地址:[https://blog.fanscore.cn/p/26/](https://blog.fanscore.cn/p/26/) > 友情提示:本文排版不太好,但內容簡單,請耐心觀看,總會搞懂的。 # 1. 定點數 對於一個無符號二進位制小數,例如`101.111`,如果我們要用2個位元組

計算機基礎——IEEE754標準的點數的轉化

      IEEE754是現在公認的、最廣泛使用的浮點數轉換運算標準,為許多CPU與浮點運算器所採用。這個標準定義了表示浮點數的格式(包括負零-0)與反常值(denormal number)),一些特殊數值(無窮(Inf)與非數值(NaN)),以及這些數值的“浮點數運

)從Python的0.1輸出0.1000000000000001說點數的二進制

python2 comment 科學 交換 tps alt 三種 一段 fill 原文地址:http://blog.csdn.net/u012843100/article/details/60885763 今天在學習Python核心編程的時候,十進制浮點數那段看到一個有趣的

Float點數二進制串和十六進制串

ilb cal == oca shift res tof 1.2 per #include <String.au3>#include <Array.au3>#cs 0.125 0000003e 12.25 00004441 -0.125 0000

計算機組成原理筆記之點數運算

http 計算機組成 nbsp 技術 -1 .com alt bsp 筆記 計算機組成原理筆記之浮點數運算

Java點數人民幣讀法

pri HR long 分解 個數 統一處理 得到 ngs i++ Java浮點數轉人民幣讀法 把【整數部分】的數字,由個位開始,4個數字分為一組,最高位沒有數字就補0,並記錄總共的數組個數,總共有3組,也就3*4的二維數組; 對於每個數組統一處理,最後將最開頭的“零

python 點數分數

limit rac rom () mina from pre class pan from fractions import Fraction value = 4.2 print(Fraction(value).limit_denominator())

IEEE754點數即其加法

參考:《計算機組成與設計(原書第5版)》             中國大學MOOC,國防科技大學的《計算機原理》課程 浮點數加法步驟 • A=Ma * 2^a,B=Mb * 2^b, Ea≥Eb:

計算機考研真題 點數加法

題目描述 求2個浮點數相加的和 題目中輸入輸出中出現浮點數都有如下的形式: P1P2...Pi.Q1Q2...Qj 對於整數部分,P1P2...Pi是一個非負整數 對於小數部分,Qj不等於0 輸入描述: 對於每組案例,每組測試資料佔2行,分別是兩個加數。 輸出描述: 每組案例

深入理解計算機系統(2.8)---點數的舍入,Java中的舍入例子以及點數運算(重要)

https://www.cnblogs.com/zuoxiaolong/p/computer12.html 前言     上一章我們簡單介紹了IEEE浮點標準,本次我們主要講解一下浮點運算舍入的問題,以及簡單的介紹浮點數的運算。   之前我們已經提到過,有很多小數是二進位制

java 點數整數精度處理

System.out.println("------case1------"); BigDecimal bigDecimal = new BigDecimal(37.98); System.out.println(bigDecimal); //37.9799999999999968736

計算機點數的表示,IEEE 754標準

IEEE Standard for Floating-Point Arithmetic(IEEE 754,Institute of Electrical and Electronics Engineers)是1985年建立的浮點數計算的技術標準。解決了原來浮點數實現不一致的問題,許多硬體