一个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;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/78604.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【实用黑科技】如何 把b站的缓存视频弄到本地——数据恢复软件WinHex 和 音视频转码程序FFmpeg

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:效率…

uniapp编写微信小程序遇到的坑总结

1、阻止事件冒泡 使用uniapp开发微信小程序的时候,发现使用click.stop来阻止事件冒泡没有作用,点击了之后发现仍然会触发父组件或者祖先组件的事件。 在网上查阅,发现使用tap.stop才能阻止事件冒泡。 2、二维码生成 在网上找了很多&…

问题:【IntelliJ IDEA】解决idea自动声明变量加finall修饰符问题

问题:【IntelliJ IDEA】解决idea自动声明变量加finall修饰符问题 场景复现 1 new String() 2 快捷方式生成变量 final修饰的 final String s new String();步骤一:确保settings配置信息 settings-----》Editor------》Code Style--------》java下的这两个选项不…

〔013〕Stable Diffusion 之 图片自动评分和不健康内容过滤器 篇

✨ 目录 🎈 下载咖啡美学评价插件🎈 咖啡美学评价使用🎈 不健康内容过滤器插件 🎈 下载咖啡美学评价插件 想让系统帮你的图片作品打分评价,可以下载咖啡美学自动评价插件插件地址:https://github.com/p1at…

stack和queue的模拟实现

stack和queue的模拟实现 容器适配器什么是适配器STL标准库中stack和queue的底层结构deque的简单介绍deque的缺陷 stack模拟实现queue模拟实现priority_queuepriority_queue的使用priority_queue的模拟实现 容器适配器 什么是适配器 适配器是一种设计模式(设计模式是一套被反复…

稀疏感知图像和体数据恢复的系统对象研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

爬虫逆向实战(十二)--某交易所登录

一、数据接口分析 主页地址:某交易所 1、抓包 通过抓包可以发现登录是通过表单提交的 2、判断是否有加密参数 请求参数是否加密? 通过查看“载荷”模块,可以发现有两个加密参数password和execution 请求头是否加密? 无响应是…

中国乡村振兴战略下传统村落文化旅游设计日

中国乡村振兴战略下传统村落文化旅游设计日

unity Dropdown默认选择不选择任何选项

当我们使用Dropdown下拉框时,有时不需要有默认选项,把 value设置为-1就可以了, 但是用代码设置value-1是没有效果的,

AI 绘画Stable Diffusion 研究(九)sd图生图功能详解-老照片高清修复放大

大家好,我是风雨无阻。 通过前面几篇文章的介绍,相信各位小伙伴,对 Stable Diffusion 这款强大的AI 绘图系统有了全新的认知。我们见识到了借助 Stable Diffusion的文生图功能,利用简单的几个单词,就可以生成完美的图片…

运行软件mfc140u.dll丢失怎么办?mfc140u.dll的三个修复方法

最近我在使用一款软件时遇到了一个问题,提示缺少mfc140u.dll文件。。这个文件是我在使用某个应用程序时所需要的,但是由于某种原因,它变得无法正常使用了。经过一番搜索和了解,我了解到mfc140u.dll是Microsoft Visual Studio 2015…

【JVM】JVM中的分代回收

文章目录 分代收集算法什么是分代分代收集算法-工作机制MinorGC、 Mixed GC 、 FullGC的区别是什么 分代收集算法 什么是分代 在java8时,堆被分为了两份: 新生代和老年代【1:2】 其中: 对于新生代,内部又被分为了三…

拒绝摆烂!C语言练习打卡第三天

🔥博客主页:小王又困了 📚系列专栏:每日一练 🌟人之为学,不日近则日退 ❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、选择题 📝1.第一题 📝2.第二题 &#x1f4…

Docker:Windows container和Linux container

点击"Switch to Windows containers"菜单时: 提示 然后 实际上是运行:com.docker.admin.exe start-service

【广州华锐视点】帆船航行VR模拟实操系统

帆船航行VR模拟实操系统由广州华锐视点开发,是一种创新的教学工具,它利用虚拟现实技术,为学生提供了一个沉浸式的学习环境。通过这种系统,学生可以在虚拟的环境中进行帆船航行的实训,从而更好地理解和掌握帆船航行的技…

【Linux】DNS协议——应用层

目录 DNS协议 DNS背景 域名简介 域名解析过程 使用dig工具分析DNS过程 DNS(Domain Name System,域名系统)协议,是一个用来将域名转化为IP地址的应用层协议。 DNS背景 TCP/IP中通过IP地址和端口号的方式,来确定网…

Airbnb开源数据可视化工具Visx

一、什么是visx visx 是用于 React 的富有表现力的底层可视化组件集合,结合了 d3 的强大功能来生成可视化,以及 React 更新 DOM 的诸多优势。 在 Airbnb 内部,visx 的目标是统一整个公司的可视化堆栈,在此过程中,创建了 visx 项目,从而有效的将 D3 的强大功能与 React …

TCP/IP 下的计算机网络江湖

〇、引言 在当今数字化时代,计算机网络宛如广袤江湖,涵盖着五大门派:物理层、数据链路层、网络层、传输层和应用层。每个门派独具技能,共同构筑着现代网络的框架。物理层宛如江湖基石,将比特流传输;数据链路层如武林传承,组织数据帧传递;网络层则像导航大师,寻找传送路…

urllib.request.urlretrieve()下载资源到本地

urllib.request.urlretrieve()下载资源到本地 代码示例: 本实例已下载Cifair10数据集为例,下载完毕后进行加压缩包 import urllib.request as ur import os import sys import tarfile import glob import pickle import numpy a…

手撕单链表

目录 链表的概念和结构 单链表的实现 申请新结点 打印 尾插 头插 尾删 头删 ​编辑 查找 在pos位置前插入元素 在pos位置后插入元素 删除pos位置的元素 删除pos位置之后的位置的元素​编辑 完整代码 SListNode.h SListNode.c 链表的概念和结构 链表是一种物理存储…