tft每日頭條

 > 科技

 > 數值型數據的整理

數值型數據的整理

科技 更新时间:2025-04-16 07:20:16
一. 數制和編碼1. 信息的二進制編碼

計算機内部處理的所有數據都必須是“數字化編碼”了的數據。數字化編碼的過程,就是指對感覺媒體信息進行采樣,将現實世界中的連續信息轉換為計算機中的離散的“樣本”信息,然後對樣本信息用“0”和“1”進行數字化編碼的過程。

數值型數據的整理(數據的機器級表示和處理)1

2. 采用二進制表示法的原因
  1. 二進制隻有兩種基本狀态,使用有兩個穩定狀态的物理器件就可以表示二進制數的每一位。
  2. 二進制的編碼,計算和運算規則都很簡單,可以用開關電路實現。
  3. 兩個符号 1 和 0 正好與邏輯命題的兩個值 真 和 假 相對應。

在計算機内部,數值數據的表示方法有兩大類:第一類是直接用二進制數表示;另一類是采用二進制的十進制數(BCD)表示。表示一個數值數據需要确定三個要素:進位計數值,定/浮點表示和編碼規則。

3. 進位計數制

日常生活中基本上都使用十進制數,其每個數位可用 10 個不同符号 0,1,2……,等表示。但在計算機系統中,常用的進位計數制有:二進制,二進制,十進制,十六進制。

數值型數據的整理(數據的機器級表示和處理)2

十進制小數轉二進制

整數部分的轉換方法是“除基取餘,上左下右”。即:用要轉換的十進制整數去除以基數 R,将得到的餘數作為結果數據中各位的數字,直到上商為 0. 上面的餘數作為右邊低位的數位,下面的餘數做為左邊高位上的數位。

小數部分的轉換方法是“乘基取整,上左下右”。即:用要轉換的十進制小數去乘以基數 R,将得到的乘積的整數部分作為結果數據中各位的數字,小數部分繼續與基數 R 相乘,以此類推,直到某一步乘積的小數部分為 0 或已得到希望的位數為止。最後,将上面的整數部分作為左邊高位上的數位,下面的整數部分作為右邊低位上的數位。

4. 定點和浮點表示定點表示

小數點位置約定在固定位置的數稱為定點數。頂點表示法用來對定點小數和定點整數進行表示。對于定點小數,其小數點總是固定在數的左邊(浮點數的尾數)。對于定點整數,其小數點總是固定在數的最右邊。

浮點表示

小數點位置約定為可浮動的數為浮點數。

對于任意一個實數 X,可以表示為:X=(-1)S * M * RE

其中,S 取值為 0 或 1,用來決定數 X 的符号。M 是一個二進制定點小數,稱為數 X 的尾數;E 是一個二進制定點整數,稱為數 X 的階或指數;R 是基數,可以取值為 2,4,16 等。

在基數 R 一定的情況下,尾數 M 的位數反映數 X 的有效位數,它決定了數的表示精度,有效位數越多,表示精度就越高;階 E 的位數決定數 X 的表示範圍;階 E 的值确定了小數點的位置。

5. 定點數的編碼表示1. 原碼表示

一個數的原碼表示由符号位直接跟數值位構成。因此,也稱 “符号-數值” 表示法。原碼表示法中,正數和負數的編碼表示僅符号位不同,數值部分完全相同。

2. 補碼表示

正數的補碼符号為0,數值部分是其本身。

負數的補碼等于模與該負數絕對值之差,即符号位為 1,數值部分取反再加一。

補碼采用的是模運算,故絕對值相同的正數和負數相加會等于模 2n。

由于是模運算,絕對值相等的正數和負數關于 2n-1 對稱。越靠經對稱軸的值(不管正數還是負數)都越大。

由于是模運算,補碼表示可以實現加減運算的統一,即用加法來實現減法運算。

數值型數據的整理(數據的機器級表示和處理)3

二. 整數的表示

計算機中的整數分為無符号整數和帶符号整數。

無符号整數:當一個編碼的所有二進制位都是用來表示數值而沒有符号位時,該編碼表示的就是無符号整數。此時默認數的符号為正(用于表示指針,下标等)。對應的數的值範圍為 0~2n-1

帶符号整數:必須有一個二進制位表示符号。n 位帶符号整數的表示範圍為:-2n-1 ~ 2n-1-1 。

C 語言中允許無符号整數和帶符号整數之間的轉換,轉換前,後的機器數不變,隻是轉換前,後對其的解釋發生了變化。

三. 浮點數的表示

浮點數是用一個定點數來表示浮點數的尾數,另一個表示浮點數的階。由于兩個定點數的位數是有限的,因而浮點數的表示範圍也是有限的。 以 32 為浮點數為例:其表示為:

數值型數據的整理(數據的機器級表示和處理)4

image

1. 非規格化浮點數

非規格化數浮點數的偏移量是 2^7(128),即 0 的階碼為 10000000。故階碼能表示的最大數為 127,最小數為 -128。

非規格化數的位數為 24位,表示形式為:0.1bbb……b,其中第一位 1 不明顯表示出來,這樣可以用 23 個數來表示 24 位尾數。

非規格化浮點數的表示範圍:

  • 負數: 最大值:-0.10……0 * 2-128 = -2-129最小值:-0.11……1*2127 = -(1-2-24) * 2127
  • 正數: 最大值:0.11……1 * 2127 = (1-2-24) * 2127最小值:0.10……0 * 2-128 = 2-129

由上看出,正數和負數的取值範圍關于 0 對稱。

2. 規格化浮點數

浮點數尾數的位數決定浮點數的有效數位,有效數位越多,數據的精度越高。為了在浮點數運算過程中盡可能多地保留有效數字的位數,使有效數字盡量占滿尾數數位,必須在運算過程中對浮點數進行規格化操作。

對浮點數進行規格化,除了能得到盡量多的有效數位,還可以使浮點數的表示具有唯一性。

IEEE 754 浮點标準

目前幾乎所有計算機都采用 IEEE 754 标準表示浮點數。在這個标準中,提供了兩種浮點格式:32 位單精度格式和 64 位雙精度格式。

  • 32 位單精度格式包含 1 位符号 s,8 位階碼 e 和 23 位尾數 f;
  • 64 位雙精度格式包含 1 位符号 s,11 位階碼 e 和 52 位尾數 f;

其基數隐含為 2,尾數用原碼表示,規格化尾數第一位總為 1,因而可在尾數中缺省第一位的 1,該缺省位稱為隐藏位,隐藏一位後使得單精度格式的 23 位尾數實際表示 24 位有效數字。IEEE 754 規定隐藏位 1 的位置在小數點之前。

IEEE 754 标準中,階碼用移碼表示,偏置常數并不是通常的 2n-1,而是 2n-1-1,因此,單精度和雙精度浮點數的偏置常數分别為 127 和 1023。

偏置常數這樣選取的好處:

  1. 尾數可表示的位數多一位,因而使浮點數的精度更高。
  2. 階碼的可表示範圍更大,因而使浮點數範圍更大。

偏置常數為127的階碼表示範圍:-126~127。 偏置常數為128的階碼表示範圍:-127~126。 由于IEEE754中規定了非規格化浮點數的階碼為-126,且隐藏位表示0。 故非規格化浮點數表示的範圍為:0~1.11……1*2^(-127)。 能夠覆蓋掉偏置常數為128中的一個子序列。故選擇偏置常數為127。

數值型數據的整理(數據的機器級表示和處理)5

IEEE 754 各區間的表示1. 全 0 階碼全 0 尾數: 0 / -02. 全 0 階碼非 0 尾數:非規格化數。

非規格化數的特點是階碼全為 0,尾數高位有一個或幾個連續的 0,但不全為 0。隐藏位為 0,并且單精度和雙精度浮點數的階分别為 -126 和 -1022,故浮點數的值分别為:(-1)s * 0.f * 2-126 和 (-1)s * 0.f * 2-1022 。

非規格化數可用于處理階碼下溢,使得出現比最小規格數還小的數時程序也能繼續執行。

3. 全 1 階碼全 0 尾數: ∞ / -∞4. 全 1 階碼非 0 尾數:NaN5. 階碼非全 0 且非全 1:規格化非 0 數,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved