深入理解计算机系统第三版第二章答案

2023-11-14

 

练习题2.13

 

分析

bis 和bic都是可以看作系统已经提供好的函数,所以可以用and or not 组合设计

bis(x,m)--置数--作用:

在x这个二进制串中把m中为1的位置全部变成0,m中为0的 不变,可以看到bis(x,m)结果和x or m 一样

例如 ,下面的例子中m前几位都是1,所以bis(x,m)中 前几位被修改为1,后几位不变

x=1010111001

m=1111100000

bis(x,m)=
  1111111001

bic(x,m)--置数--作用:

在x这个二进制串中把m中为1的位置全部变成0,类似上面,想不出来可以用真值表

0,0=0

0,1=0

1,0=1

1,1=0

bic(x,m)=x and (not m)

 

所以or就是bis

写xor的时候,

我们可以(bic)   bis(bic)

也可以(bis) bic (bis)

 

以 (bic 1)   bis(bic2)为例子

当x,y=1 0 或者x,y =0 1的时候,bic1,bic2的任何一个只要为1 就可以了

而bic 当 x,y=1 0 的时候为1  所以 而x,y= 1 0 或者x y = 0 1所以 bic(x,y) ,bic(y,x)必有一个为1,也就是bic1 = bis(x,y)   bic2 = bic(y,x)

所以xor = bis(bic(x,y),bic(y,x))

 

解答

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int bis(int x,int m){
	return x|m;
} 
int bic(int x,int m){
	return x & ~ m;
}

int bool_or_using_bis_bic(int x,int y){
	return bis(x,y);
}

int bool_xor_using_bis_bic(int x,int y){
	return bis(bic(x, y), bic(y, x));
}
int main(){
	//随机化 
	srand(time(NULL));
	for (int i=0;i<10;i++){
		printf("-----------开始第 %d 组测试--------\n",i+1);
		//生成两个小于100的随机数 
		int x=rand()%101;
		int y=rand()%101;
		printf("x=%d y=%d \nXOR right=%d my=%d  %s \nOR right=%d my=%d %s\n",
			x,y,
			x^y,bool_xor_using_bis_bic(x,y),
			x^y-bool_xor_using_bis_bic(x,y)==0?"TRUE":"FALSE",
			x|y,bool_or_using_bis_bic(x,y),
			x|y-bool_or_using_bis_bic(x,y)==0?"TRUE":"FALSE"
		 );
	}
	printf("\n\n测试完毕");
}

测试结果

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深入理解计算机系统第三版第二章答案 的相关文章

  • JavaScript读取json文件

  • push和pushl的区别

    AT T汇编中 命令中可以指定操作范围 如pushb是将一个byte压栈 而pushw就是将一个word压栈 同样pushl就是压栈long 也就是双字 esp指的是esp寄存器 已知是双字 而0xfffffff8 p 指的是一个内存空间
  • JVM垃圾回收机制GC理解

    目录 JVM垃圾回收 分代收集 如何识别垃圾 引用计数法 可达性分析法 引用关系四种类型 强 软 弱 虚 强引用 软引用 SoftReference 弱引用 WeakReference WeakHashMap 软引用与虚引用的使用场景 虚引
  • [Codeforces 1286B] Numbers on Tree

    Evlampiy was gifted a rooted tree The vertices of the tree are numbered from 1 to n Each of its vertices also has an int
  • 用Python3 + bs4 + request + mysql 抓取并存储新发地菜价数据

    为了让大家去菜市场砍价的时候 心里更有底 我写了一个小程序 抓取新发地官网公布的农副产品价格 并存入数据库 仅供研究 简单说一下思路吧 从新发地官网找到数据展示的规律 发现不同的类别和页数 是通过两个接口参数控制的 因此将URL模板设计成动
  • C语言复习:关于链表的函数参数*L,&L.

    关于链表的函数参数 1 在链表中有时参数指针是 L 2 有时是 指针是 L 1 在链表中有时参数指针是 L ListInsert LinkNode L int i ElemType e InitList LinkNode L 2 有时是 指
  • uniapp 一个项目只能使用一个APPID

    一个项目只能使用一个APPID 这时只需要登录开发者中心就会自动更新APPID了
  • 云原生之使用Docker部署Linux命令大全搜索工具

    云原生之使用Docker部署Linux命令大全搜索工具 一 Linux Command介绍 二 检查本地部署环境 1 检查docker版本 2 检查docker状态 三 下载linux command镜像 四 部署linux command
  • kylin: NoClassDefFoundError: org/apache/hadoop/hive/conf/HiveConf

    1 背景 kylin load hive data 报错 后台日志 2019 05 08 11 40 34 046 ERROR http bio 7070 exec 3 controller TableController 197 org
  • VUE+vue-print-nb,vue打印我踩过的坑

    这几天写了一个需求 要求打印条形码 先来张要打印出来的效果图吧 效果图大概长这样子 图是我随便找的 二维码扫出来是啥我也不知道 哈哈 写这个需求的时候踩了太多的坑了 在此记录下辛酸史 vue print nb基本用法 这个插件用法很简单 安
  • 存储器管理(分页存储)例题解析(操作系统)

    逻辑地址 页号 页长 页内偏移量 将逻辑地址102B H 转换成十进制 11 160 2 161 1 163 4139 因为页长1KB 1024 所以 4139 1024 4 余数是43 那么也就是说 页号是 4 页内偏移量是 43 由页号
  • [深度学习]循环神经网络:RNN,LSTM,GRU,Attention机制,沿时间的截断反向传导算法

    RNN Recurrent Neural Network 循环神经网络 每个RNN都有一个循环核心单元 它把x作为输入 将其传入RNN RNN有一个内部隐藏态 internal hidden state 这个隐藏态会在RNN每次读取新的输入
  • ElasticSearch6.x 核心概念总结

    ElasticSearch6 x 与MySQL8 核心概念对比 ElasticSearch6 x MySQL8 x 索引 index 数据库 database 类型 type 表 table 文档 document 行 row 字段 fie
  • golang slice 是 struct 类型,作为参数传递时要传地址

    总结 slice 为结构体类型 go 传参都是值传递 跨函数传递 slice 时 要传变量的地址 不能直接传递变量值 因为除了 len 会变 遇到扩容时 还会新建底层数组 先看下 slice 的定义 type slice struct ar
  • Java 堆排序的应用--对类根据目标成员进行排序

    Java 堆排序的应用 对类根据目标成员进行排序 前言 堆排序方案 应用 快排方案 应用 代码记录 结语 前言 突然想对SQL语句搜索上来的数据重新排个序 也就是对类list排序 一时间网上搜了搜都说要覆写compareTo函数 觉得这么搞
  • 制作U盘安装CentOS 6.2

    见附件 CentOS6 2需自行下载
  • HCIP2------路由器、交换机的转发原理

    一 路由器 1 路由器产生的原因 对于普通用户来说 主机A与主机B通信需要通过路由器 从而构成简单的局域网 局域网内的计算机要和外面的计算机进行通信 要把请求提交给路由器的以太口 进而发展成为广域网 同时需要有一种方法来判断从源主机到达目的
  • Lattic Diamond软件安装不成功问题

    安装过程可以远程操作 但安装完成后不能通过远程来打开软件应用程序 一定要在本地电脑上打开使用 否则lisence中的MAC地址会不匹配
  • ScrollView默认位置不是最顶部

    场景描述 在scrollview中套用了一个recycleview 发现 recycleview上面的部分TextView不能被显示 直接显示的是recycleview的底部 分析原因 在Activity计算窗口的高度时 是在listvie
  • 在Excel中根据条件查找匹配多个值

    在Excel中根据条件查找匹配多个值 vlookup只能匹配第一个值 之前在深圳的时候就被问过这个问题 今天又遇到同事在问 索性记录在此 如下图 根据E列的值 在A列中查找对应的数据 输出匹配行上B列的值 依次填入到F G H 列 公式拆解

随机推荐

  • idea 配置maven常见问题

    1 在applicationContext dao xml中配置数据源时提示 cannot resolve property key 解决 在Facets中移除spring 重新添加一次 将xml引入 2 maven 下载的依赖库Depen
  • 腾讯云服务器标准型S5、S4、S3、S2区别及怎么选择?

    腾讯云标准型服务器包括S2 S3 S4实例 这些实例都是标准型服务器 那么S2 S3 S4 S5区别在哪里呢 在这一块选择的时候新手会有很多犹豫 看上去型号都差不多 配置里面很多参数也看不懂 到底怎么选呢 接下来带大家去看看详细情况 腾讯云
  • VS code 插件配置手册

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 VS code 插件配置手册 C C Tools插件 C C 支持安装库文件的配置GDB本地调试配置GDB远程调试配置Remote VSCode插件 远程编辑文件安装环境
  • VCPKG 包下载失败解决思路

    vcpkg经常会遇到资源无法访问 可能是域名解析出了问题 我们只需要将域名解析后的ip地址添加到hosts文件列表中可解决此问题 如 185 199 108 133 raw githubusercontent com 在此之前可先通过终端p
  • spring-boot-starter家族成员简介

    应用程序starters 以下应用程序starters是Spring Boot在org springframework boot组下提供的 springboot使用指南https docs spring io spring boot doc
  • Transforms的使用

    Transforms是常用的图像预处理方法 提高泛化能力 其实是一个py文件 其中包含了totensor 将数据类型转换成tensor类型 resize等工具 tensor数据类型 通过Transforms totensor去看两个问题 1
  • Linux 的 anaconda 虚拟环境下安装指定的 cuda、cudnn、pytorch

    感悟 首先 anaconda 的虚拟环境真香 开辟一个新的虚拟环境 很多环境 版本不兼容的问题都不复存在 尤其对复现别人代码的同学很有用 条件 只要安装的版本不超过自己机器的硬件条件 那么就可以安装 步骤 1 确定安装的 cuda 版本 在
  • springBoot+scheduling实现多任务动态定时任务

    使用spring自带的scheduling定时调度任务相当于轻量级的Quartz 但是不支持分布式 若要实现分布式定时任务就得使用Quartz了 第一步 在入口类中声明定时任务 import org springframework boot
  • java中比较两个map是否相同

    结论 对于所有继承于AbstractMap的map类 基本上jdk中的map都继承了 直接使用Map equals 即可 源码解析 AbstractMap重写了equals方法 保证对两个相同内容的map调用equals比较结果为真 源码如
  • opencv之人脸检测项目实战(二)

    自我介绍 目录 一 人脸检测整体架构 1 1 什么是人脸检测 1 2 人脸检测的应用场景 1 3 人脸检测核心架构 二 人脸检测实现技术储备 2 1 NDK开发的原理 2 2 什么是JNI 2 3 OpenCV架构体系 三 人脸识别项目实战
  • vue-cli打包

    创建vue config js文件 设置不同模式的打包入口 把main js文件删除 创建main prod js和main dev js module exports chainWebpack config gt 判断当前的编译模式 设置
  • 【python】统计代码行数

    背景 写了一堆 cs文件 想看看一共写了多少行 代码 import os import chardet Check if a file has the given extension def has extension file exten
  • 模型转换、模型压缩、模型加速工具汇总

    目录 一 场景需求解读 二 模型转化工具汇总 1 模型转换工具的作用 2 模型转换工具简介 1 MMdnn 2 ONNX 3 X2Paddle 三 模型压缩和加速工具汇总 1 模型压缩加速工具的作用 2 模型压缩加速工具简介 1 Pocke
  • 计算方法--解线性方程组的迭代法

    文章目录 雅可比迭代法 Jacobi 迭代公式的矩阵形式 编程计算公式 迭代思路 高斯 赛德尔迭代法 Gauss Seidel 迭代法的收敛性 迭代法收敛性基本定义 收敛速度 迭代法充分条件1 迭代法充分条件2 迭代法其他收敛条件 JOR迭
  • 如何使UI自动化项目成功?

    目标 错误的目标 追求一些错误的目标 会使自动化测试走向失败 1 替代手工测试 自动化无法替代手工测试 只能作为辅助手段 在如图的第二象限起作用 2 高比率的UI测试覆盖率 不是覆盖率越高越好 由测试金字塔来看 底端占比越高 自动化效率越好
  • 学前端开发适用于移动端常见的问题

    常见问题1 移动端如何定义字体font family三大手机系统的字体 ios 系统默认中文字体是Heiti SC默认英文字体是Helvetica默认数字字体是HelveticaNeue无微软雅黑字体android 系统默认中文字体是Dro
  • 快排的非递归实现

    快排的非递归 这里我们需要借助数据结构的栈模拟快排的递归过程 栈先进后出 实现思想 1 先将需要排序的区间入到栈中 2 栈不为空时 将需要排序区间读取出来 进行单趟排序 获得了key位置 判断key左右区间是否存在 若存在 将左右下标数据入
  • ORA-28009: 应当以 SYSDBA 身份或 SYSOPER 身份建立 SYS 连接

    用 SQL Plus 连接数据库的时候 除了用户名和密码外 还要在口令后面加一个主机字符串 如下 请输入用户名 sys 口令 ANKoracle123 orcl as sysdba 转载于 https www cnblogs com ann
  • 局部自适应阈值分割方法

    github地址 https github com radishgiant ThresholdAndSegment git Local Yanowitz 由于光照的影响 图像的灰度可能是不均匀分布的 此时单一阈值的方法分割效果不好 Yano
  • 深入理解计算机系统第三版第二章答案

    练习题2 13 分析 bis 和bic都是可以看作系统已经提供好的函数 所以可以用and or not 组合设计 bis x m 置数 作用 在x这个二进制串中把m中为1的位置全部变成0 m中为0的 不变 可以看到bis x m 结果和x