定點數的乘除運算

原碼一位乘法

  1. 乘積的符號由兩個數的符號位異或而成。(不參與運算
  2. 被乘數和乘數均取絕對值參與運算,看作無符號數。
  3. 乘數的最低位為Yn:
    1. 若Yn=1,則部分積加上被乘數|x|,然后邏輯右移一位;
    2. 若Yn=0,則部分積加上0,然后邏輯右移一位;

補碼一位乘法(Booth算法)

  1. 符號位參與運算,且運算中的數均以補碼表示。
  2. 被乘數取雙符號位乘數取單符號位
  3. 乘數末位增設附加位,初值為0
  4. 根據最低位和次低位的取值來確定操作,其中右移為算術右移。
最低位次低位操作
00部分積+0,右移一位
01部分積+[X]補,右移一位
10部分積+[-X]補,右移一位
11部分積+0,右移一位

原碼除法運算(不恢復余數法)

  1. 商的符號由兩個數的符號位異或而成。(不參與運算
  2. 先用被除數減去除數:
    1. 當余數為正時,商上1,余數和商左移1位,再減去除數;
    2. 當余數為負時,商上0,余數和商左移1位,再加上余數。(撤銷操作)
  3. 當等第n+1步(機器字長為n+1)余數為負時,需加上|y|得到正確的余數。

余正商1左移減除,余負商0左移加除

注:最后一步要把商上完

補碼除法運算(加減交替法)

  1. 符號位參與運算,除數,被除數,商和余數都是用補碼表示。(雙符號位
    1. 被除數與除數同號,則被除數-除數;
    2. 被除數與除數異號,則被除數+除數;
  2. 若余數與除數同號,則商上1,余數和商左移1位,減去除數;
  3. 若余數與除數異號,則商上0,余數和商左移1位,加上除數;
  4. 重復執行上兩步操作n次(機器字長為n+1)

被除除同號相減,異號相加

余、除同號商1左移減除,異號商0左移加除

小結

機器字長為n+1時

  • 原碼乘法:加減n次,移位n次
  • 補碼乘法:加減n+1次,移位n次
  • 原碼除法:加減n+1/n+2次,移位n次
  • 補碼除法:加減n+1次,移位n次

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/62354.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/62354.shtml
英文地址,請注明出處:http://en.pswp.cn/web/62354.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何設置ChromeDriver路徑?

設置ChromeDriver路徑是為了讓Selenium能夠正確地調用Chrome瀏覽器進行自動化操作。以下是幾種設置ChromeDriver路徑的方法: 1. 系統環境變量 將ChromeDriver的路徑添加到系統的環境變量中,這樣在任何地方都可以直接調用ChromeDriver。 Windows系統&a…

數據挖掘:一、Weka軟件的基本操作

實驗目的和要求 了解Weka軟件的使用 實驗環境 Windows11 Weka3.8.6 實驗內容與過程 實驗內容 1、了解Weka使用的一般步驟 2、利用Weka,對數據集進行關聯規則挖掘及數據分類 3、記錄操作步驟、使用的數據、最終的結果 實驗過程 首先打開weka下載官網,選擇合適

【從零開始的LeetCode-算法】383. 贖金信

給你兩個字符串:ransomNote 和 magazine ,判斷 ransomNote 能不能由 magazine 里面的字符構成。 如果可以,返回 true ;否則返回 false 。 magazine 中的每個字符只能在 ransomNote 中使用一次。 示例 1: 輸入&#…

【第二十四周】從大語言模型到多模態大模型的發展

摘要 大語言模型(Large Language Model, LLM)是指一類基于深度學習的人工智能系統,它們被設計用來理解和生成自然語言。這些模型通常是在大量的文本數據上進行訓練的,通過學習文本中的模式和結構,它們能夠執行各種各樣…

https ssl免費證書申請,自動續期,acme、certd

本文為個人筆記,方便自己需要時查閱,同時提供出來給大家作為免費ssl證書自動續簽需求的一種參考 大部分免費證書的有效期僅有3個月,所以證書管理會涉及到自動續期管理的問題 一、acme證書 大佬們常用的證書證書申請管理方式,提…

uniapp的生命周期

在 UniApp 中,生命周期函數是指在組件(如頁面、視圖等)創建和銷毀過程中會自動觸發的一些函數。UniApp 提供了多種生命周期函數,幫助開發者在適當的時機進行相關的邏輯處理。 UniApp 的生命周期函數可以分為 頁面生命周期 和 組件…

unity打包到安卓幀率降低

這個問題遇到過很多次了我的做法就是直接設置Application.targetFrameRate60 參考

【Vue】v-model、ref獲取DOM

目錄 v-moel v-model的原理 v-model用在組件標簽上 方式 defineModel()簡寫 ref屬性 獲取原生DOM 獲取組件實例 nextTick() v-moel v-model:雙向數據綁定指令 數據變了,視圖跟著變(數據驅動視圖)視圖變了,數…

Kubernetes 常用操作大全:全面掌握 K8s 基礎與進階命令

Kubernetes(簡稱 K8s)作為一種開源的容器編排工具,已經成為現代分布式系統中的標準。它的強大之處在于能夠自動化應用程序的部署、擴展和管理。在使用 Kubernetes 的過程中,熟悉常用操作對于高效地管理集群資源至關重要。本文將詳…

sqlmap --os-shell的原理(MySQL,MSSQL,PostgreSQL,Oracle,SQLite)

1. MySQL 條件 數據庫用戶需要具備高權限(如 FILE 權限)。數據庫服務運行用戶需要對目標目錄有寫權限。Web 服務器有可寫目錄,且支持執行上傳的腳本(如 PHP、JSP 等)。 原理 利用 MySQL 的 SELECT ... INTO OUTFIL…

Springboot 2.x 升級到Springboot 2.7.x問題匯總

Springboot 2.x 升級到Springboot 2.7.x問題 Springboot 2.x 升級到Springboot 2.7.x問題匯總 不廢話 上干貨 改變 1.mysql依賴groupId和artifactId更改&#xff1b; <dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</…

【計算機網絡】實驗13:運輸層端口

實驗13 運輸層端口 一、實驗目的 本次實驗旨在驗證TCP和IP運輸層端口號的作用&#xff0c;深入理解它們在網絡通信中的重要性。通過實驗&#xff0c;我將探討端口號如何幫助區分不同的應用程序和服務&#xff0c;使得在同一臺主機上能夠同時運行多個網絡服務而不發生沖突。此…

【Redis】Redis基礎——Redis的安裝及啟動

一、初識Redis 1. 認識NoSQL 數據結構&#xff1a;對于SQL來說&#xff0c;表是有結構的&#xff0c;如字段約束、字段存儲大小等。 關聯性&#xff1a;SQL 的關聯性體現在兩張表之間可以通過外鍵&#xff0c;將兩張表的數據關聯查詢出完整的數據。 查詢方式&#xff1a; 2.…

vuex 是什么?怎么使用?哪種功能場景使用它?

Vuex是Vue.js的狀態管理庫。它可以用來管理應用程序中的共享狀態&#xff0c;并提供了一種集中式的方式來管理狀態的變化。 使用Vuex&#xff0c;首先需要安裝它&#xff1a; npm install vuex --save然后&#xff0c;在Vue應用程序的入口文件中&#xff0c;導入Vuex并在Vue實…

ElK 8 收集 MySQL 慢查詢日志并通過 ElastAlert2 告警至飛書

文章目錄 1. 說明2. 啟個 mysql3. 設置慢查詢4. filebeat 設置5. 觸發慢查詢6. MySQL 告警至飛書 1. 說明 elk 版本&#xff1a;8.15.0 2. 啟個 mysql docker-compose.yml 中 mysql&#xff1a; mysql:# restart: alwaysimage: mysql:8.0.27# ports:# - "3306:3306&q…

PyTorch基本使用-張量的索引操作

在操作張量時&#xff0c;經常要去獲取某些元素進行處理或者修改操作&#xff0c;在這里需要了解torch中的索引操作。 準備數據&#xff1a; data torch.randint(0,10,[4,5]) print(data--->,data)輸出結果&#xff1a; data---> tensor([[3, 9, 4, 0, 5],[7, 5, 9, …

【服務器監控】grafana+Prometheus+node exporter詳細部署文檔

我們在進行測試時&#xff0c;不可能一直手動看著服務器的性能消耗&#xff0c;這時候就需要有個工具替我們監控服務器的性能消耗。這里記錄下grafanaPrometheusnodeExporter的組合用于監控服務器。 簡單介紹&#xff1a; grafana&#xff1a;看板工具&#xff0c;所有采集的…

第十七章 使用 MariaDB 數據庫管理系統

1. 數據庫管理系統 數據庫是指按照某些特定結構來存儲數據資料的數據倉庫。在當今這個大數據技術迅速崛起的年代&#xff0c;互聯網上每天都會生成海量的數據信息&#xff0c;數據庫技術也從最初只能存儲簡單的表格數據的單一集中存儲模式&#xff0c;發展到了現如今存儲海量…

Jenkins授權策略的配置

簡介:在Jenkins中,通過系統管理下的“Manage and Assign Roles”以及“Manage Roles”來配置角色,是實現權限管理的關鍵步驟。以下是關于這兩個功能配置角色時的意義及注意事項的詳細解釋: 一、配置角色的意義 實現權限控制: 通過創建和分配角色,可以精確地控制不同用戶…

centos 7.9 安裝jdk1.8 mysql redis等

環境&#xff1a; centos 7.9 1、安裝OpenJDK 1.8 步驟 1: 更新系統 首先&#xff0c;確保你的系統是最新的&#xff0c;執行以下命令來更新所有軟件包&#xff1a; sudo yum update -y步驟 2: 安裝 OpenJDK 1.8 CentOS 7 默認的包管理器是 yum&#xff0c;你可以通過以下命…