一個DW的計算

一個DW的計算

  • 1- 題目: 已知一個DW
    • 1.1 要求: 從DW中取出指定的位的值
      • 1.1.1 分析
      • 1.1.2 實現
      • 1.1.3 簡化實現
      • 1.1.4 驗證
  • 2- 題目: 已知一個DW
    • 2.1 要求: 從DW中的指定的P和S,取出指定的位的值
      • 2.1.1 分析
      • 2.1.2 實現

1- 題目: 已知一個DW

有圖中所示一行信息,表示一個DW(4字節,32位)
(一個word是兩個字節,所以DW(double word)就是4個字節)

已知 DW 值 payload=0x03000100

在這里插入圖片描述

1.1 要求: 從DW中取出指定的位的值

分別取出P3,P2,P1,P0的值

P3表示該行中第[28:31]位的值
P2表示該行中第[24:27]位的值
P1表示該行中第[20:23]位的值
P0表示該行中第[16:19]位的值

1.1.1 分析

將DW的每一位的意義補充完整,得到該圖
在這里插入圖片描述

可以通過將DW的 值 payload 右移得到所需的指定 位 的值

payload = 0x03000100
(1)右移28位, 那么得到的值就只剩前4位,就是0x0,
也就是 bit[28:31]所指的值,就是P3, 即P3=0x0

(2)右移24位, 那么得到的值就只剩前8位,就是0x03,
也就是 bit[24:31]所指的值,就是P2和P3的值,只要和0xF相與,就能得到bit[24:27]的值,就是P2, 即P2=0x3

(3)右移20位, 那么得到的值就只剩前12位,就是0x030,
也就是 bit[20:31]所指的值,就是P1,P2和P3的值,只要和0xF相與,就能得到bit[20:23]的值,就是P1,即P1=0x0

(4)右移16位, 那么得到的值就只剩前16位,就是0x0300,
也就是 bit[16:31]所指的值,就是P0, P1, P2和P3的值,只要和0xF相與,就能得到bit[16:19]的值,就是P0, 即P0=0x0

1.1.2 實現

通過分析,可以得到如下的計算公式

P3_value = payload >> 28;
P2_value = payload >> 24 & 0xF;
p1_value = payload >> 20 & 0xF;
P0_value = payload >> 16 & 0xF;

1.1.3 簡化實現

上一項需要寫四行,比較麻煩

當P=3/2/1/0時, 合并這些重復,就是
P_value = payload >> (P+4)*4 & 0xF;

1.1.4 驗證

將payload的值 對應到每一位,并驗證P3/2/1/0值
在這里插入圖片描述

2- 題目: 已知一個DW

有圖中所示一行信息,表示一個DW(4字節,32位)
(一個word是兩個字節,所以DW(double word)就是4個字節)

已知 DW 值 payload=0x03000100

在這里插入圖片描述

2.1 要求: 從DW中的指定的P和S,取出指定的位的值

已知DW的值payload=0x03000000
每一個P里面都有4個S,P和S都是隨機出現的,P和S結合后,就會生成一個數,有唯一的bit,
求這個bit對應的E中的bit的值,對應關系就是相差16個bit

2.1.1 分析

與P和S組合的bit 在E中的對應bit位 相差16個bit

在E中對應的bit計算公式
E_value_bit = P*4+S;

再將E右移對應的bit位,再與1相與,就能得到E對飲過的bit的值 E_value = E >> E_value_bit & 0x1;

2.1.2 實現

E_value_bit = P*4+S;
E_value = E >> E_value_bit & 0x1;

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

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

相關文章

常見的Web安全漏洞有哪些,Web安全漏洞常用測試方法介紹

Web安全漏洞是指在Web應用程序中存在的可能被攻擊者利用的漏洞,正確認識和了解這些漏洞對于Web應用程序的開發和測試至關重要。 一、常見的Web安全漏洞類型: 1、跨站腳本攻擊(Cross-Site Scripting,XSS):攻擊者通過向Web頁面注入…

神經網絡基礎-神經網絡補充概念-41-梯度的數值逼近

概念 梯度的數值逼近是一種用于驗證梯度計算正確性的方法,它通過近似計算梯度來與解析計算的梯度進行比較。雖然數值逼近在實際訓練中不常用,但它可以用來檢查手動或自動求導的實現是否正確。 代碼實現 import numpy as np# 定義函數 f(x) x^2 def f…

養生的年輕人,自己給自己“治病”

【潮汐商業評論/原創】 “最近嘴周總長痘,應該是上火了,我這就下單點金銀花露喝。”對于長痘這件事,Anna的第一反應就是“內調”。 “針對性護膚和涂藥這些方法治標不治本,就算用完痘痘不泛紅且癟了,身體里的問題沒解…

上傳文件報413Request EntityToo Large錯誤解決辦法

產生這種原因是因為服務器限制了上傳大小 1、nginx服務器的解決辦法 修改nginx.conf的值就可以解決了 將以下代碼粘貼到nginx.conf內 client_max_body_size 20M 可以選擇在http{ }中設置:client_max_body_size 20m; 也可以選擇在server{ }中設置:cli…

金蝶軟件實現Excel數據復制分錄信息粘貼到單據體分錄行中

>>>適合KIS云專業版V16.0|KIS云旗艦版V7.0|K/3 WISE 14.0等版本<<< 實現Excel數據復制分錄信息粘貼到金蝶單據體分錄中,在采購訂單|采購入庫單|銷售訂單|銷售出庫單等類型單據中,以少量的必要字段在excel表格中按模板填列好,很方便快捷地復制到金蝶單據表體…

java+springboot+mysql銀行管理系統

項目介紹&#xff1a; 使用javaspringbootmysql開發的銀行管理系統&#xff0c;系統包含超級管理員、管理員、客戶角色&#xff0c;功能如下&#xff1a; 超級管理員&#xff1a;管理員管理&#xff1b;客戶管理&#xff1b;卡號管理&#xff08;存款、取款、轉賬&#xff09…

Vue 2混入

混入&#xff08;Mixins&#xff09;是一種在Vue組件中重用代碼的方式。它允許你定義一些可復用的選項對象&#xff0c;然后將這些選項合并到不同的組件中。混入可以用于在多個組件之間共享邏輯、方法、生命周期鉤子等。 示例&#xff1a; <!DOCTYPE html> <html>…

.net core介紹

.NET Core&#xff08;現在已經重命名為.NET 5及更高版本為.NET&#xff09;是一個跨平臺的開源開發框架&#xff0c;由Microsoft開發和維護。它旨在支持構建現代、高性能、可擴展的應用程序&#xff0c;可以運行在Windows、macOS和Linux等多個操作系統上。 以下是.NET Core的…

記一次微信小游戲滲透測試

本文轉載于&#xff1a;https://www.freebuf.com/vuls/371936.html 準備工作 因為目標站點只能用微信打開&#xff0c;微信又不能調試看代碼。這里推薦可以使用pc端舊版微信3.2.1&#xff0c;具體方法放鏈接里&#xff1a; https://blog.csdn.net/qq_45863248/article/details/…

Springboot 封裝整活 Mybatis 動態查詢條件SQL自動組裝拼接

前言 ps&#xff1a;最近在參與3100保衛戰&#xff0c;戰況很激烈&#xff0c;剛剛打完仗&#xff0c;來更新一下之前寫了一半的博客。 該篇針對日常寫查詢的時候&#xff0c;那些動態條件sql 做個簡單的封裝&#xff0c;自動生成&#xff08;拋磚引玉&#xff0c;搞個小玩具&a…

chatgpt多個key循環使用解決token限速

itertools.cycle 是 Python 標準庫中的一個函數&#xff0c;它用于創建一個無限循環迭代器。它接受一個可迭代對象作為參數&#xff0c;并會不斷重復該可迭代對象的元素。 使用 itertools.cycle 可以方便地創建一個可以無限循環的迭代器。當你需要反復訪問一個可迭代對象的元素…

【Linux操作系統】深入探索Linux進程:創建、共享與管理

進程的創建是Linux系統編程中的重要概念之一。在本節中&#xff0c;我們將介紹進程的創建、獲取進程ID和父進程ID、進程共享、exec函數族、wait和waitpid等相關內容。 文章目錄 1. 進程的創建1.1 函數原型和返回值1.2 函數示例 2. 獲取進程ID和父進程ID2.1 函數原型和返回值2.…

接口測試及接口抓包常用測試工具和方法?

作為測試領域中不可或缺的一環&#xff0c;接口測試和抓包技術在軟件開發過程中扮演著至關重要的角色。不論你是新手還是有一些經驗的小伙伴&#xff0c;本篇文章都會為你詳細介紹接口測試的基本概念、常用測試工具和實際操作技巧&#xff0c;讓你輕松掌握這一技能。 接口測試…

Java數字化智慧工地管理云平臺源碼(人工智能、物聯網、大數據)

智慧工地優勢&#xff1a;"智慧工地”將施工企業現場視頻管理、建筑起重機械安全監控、現場從業人員管理、物料管理、進度管理、揚塵噪聲監測等現場設備有機、高效、科學、規范的結合起來真正實現工程項目業務流與現場各類監控源數據流的有效結合與深度配合&#xff0c;實…

在Hive/Spark上運行執行TPC-DS基準測試 (ORC和TEXT格式)

目前,在Hive/Spark上運行TPC-DS Benchmark主要是通過早期由Hortonworks維護的一個項目:hive-testbench 來完成的。本文我們以該項目為基礎介紹一下具體的操作步驟。不過,該項目僅支持生成ORC和TEXT格式的數據,如果需要Parquet格式,請參考此文《在Hive/Spark上執行TPC-DS基…

動態代理有幾種方式,可以借助Mybatis-plus里面的檢驗動態類

動態代理有很多的分類&#xff1b; 1、JDK原生的動態代理&#xff1b; 2、Spring實現的基于cglib里面的工廠實例化對象&#xff1b; 3、基于原生的cglib造出來的對象 4、基于字節碼的反編譯&#xff1a;assistant 具體的實現類參考&#xff1a; public final class ClassU…

【JVM】對String::intern()方法深入詳解(JDK7及以上)

文章目錄 1、什么是intern&#xff1f;2、經典例題解釋例1例2例3 1、什么是intern&#xff1f; String::intern()是一個本地方法&#xff0c;它的作用是如果字符串常量池中已經包含一個等于此String對象的字符串&#xff0c;則返回代表池中這個字符串的String對象的引用&#…

Java開源項目mall學習筆記(1)——項目初始化

一、學習聲明與項目介紹 該筆記是記錄學習開源項目mall過程的文檔筆記&#xff0c;完全原創&#xff0c;轉載請聲明。同時也對開源項目的作者表示感謝&#xff01; mall: &#x1f525; mall項目是一套基于 SpringBoot Vue uni-app 實現的電商系統&#xff0c;包括前臺商城項…

編譯鴻蒙codelabs安裝時報錯

學習鴻蒙ArkTS時編譯codelabs樣例代碼&#xff0c;發現編譯完成報錯。目前鴻蒙的資料比較少&#xff0c;且官方文檔路徑很深&#xff0c;遂記錄下來&#xff0c;以資來者。 error: failed to start ability. Error while Launching activity修改module.json5中的exported為tru…

ArcGIS 利用cartogram插件制作變形地圖

成果圖 注&#xff1a;本圖數據并不完全對&#xff0c;只做為測試用例 操作 首先需要下載一個插件cartogram 下載地址在這里 https://www.arcgis.com/home/item.html?idd348614c97264ae19b0311019a5f2276 下載完畢之后解壓將Cartograms\HelpFiles下的所有文件復制到ArcGIS…