西工大网络空间安全学院计算机系统基础实验一(61分答案)

 只能说没有一道题是自己写的,都是在网上查资料抄别人的,也不知道这有什么意思。也不知道自己学到了什么,怎么说呢,Emmmm......对了,文末最后的几段话是为了凑字数,大家简单忽略掉就好。

/* * tmin - return minimum two's complement integer *   Legal ops: ! ~ & ^ | + << >>*   Max ops: 4*   Rating: 1*/
int tmin(void) {return 1<<31;
}
/* * absVal - absolute value of x*   Example: absVal(-1) = 1.*   You may assume -TMax <= x <= TMax*   Legal ops: ! ~ & ^ | + << >>*   Max ops: 10*   Rating: 4*/
int absVal(int x) {int s = x>>31;return (x+s)^s;
}
/* * bitAnd - x&y using only ~ and | *   Example: bitAnd(6, 5) = 4*   Legal ops: ~ |*   Max ops: 8*   Rating: 1*/
int bitAnd(int x, int y) {return ~(~x|~y);
}
/* * replaceByte(x,n,c) - Replace byte n in x with c*   Bytes numbered from 0 (LSB) to 3 (MSB)*   Examples: replaceByte(0x12345678,1,0xab) = 0x1234ab78*   You can assume 0 <= n <= 3 and 0 <= c <= 255*   Legal ops: ! ~ & ^ | + << >>*   Max ops: 10*   Rating: 3*/
int replaceByte(int x, int n, int c) {int s = n<<3;return (c<<s)|(x&~(0xff<<s));
}
/** mult3div2 - multiplies by 3/2 rounding toward 0,*   Should exactly duplicate effect of C expression (x*3/2),*   including overflow behavior.*   Examples: mult3div2(11) = 16*             mult3div2(-9) = -13*             mult3div2(1073741824) = -536870912(overflow)*   Legal ops: ! ~ & ^ | + << >>*   Max ops: 12*   Rating: 2*/
int mult3div2(int x) {x += (x<<1);return (x+((x>>31)&1))>>1;
}
/** multFiveEighths - multiplies by 5/8 rounding toward 0.*   Should exactly duplicate effect of C expression (x*5/8),*   including overflow behavior.*   Examples: multFiveEighths(77) = 48*             multFiveEighths(-22) = -13*             multFiveEighths(1073741824) = 13421728 (overflow)*   Legal ops: ! ~ & ^ | + << >>*   Max ops: 12*   Rating: 3*/
int multFiveEighths(int x) {x += (x<<2);return (x+((x>>31)&7))>>3;
}
/* * addOK - Determine if can compute x+y without overflow*   Example: addOK(0x80000000,0x80000000) = 0,*            addOK(0x80000000,0x70000000) = 1, *   Legal ops: ! ~ & ^ | + << >>*   Max ops: 20*   Rating: 3*/
int addOK(int x, int y) {return (((x^y)>>31)|~(((x+y)^x)>>31))&1;
}
/** bitCount - returns count of number of 1's in word*   Examples: bitCount(5) = 2, bitCount(7) = 3*   Legal ops: ! ~ & ^ | + << >>*   Max ops: 40*   Rating: 4*/
int bitCount(int x) {int m2 = (0x55<<8)|0x55;int m4 = (0x33<<8)|0x33;int m8 = (0x0f<<8)|0x0f;m2 |= (m2<<16);m4 |= (m4<<16);m8 |= (m8<<16);x += ~((x>>1)&m2)+1;x = ((x>>2)&m4)+(x&m4);x = (x+(x>>4))&m8;x += (x>>8);x += (x>>16);return x&0x3f;
}
/* * isLess - if x < y  then return 1, else return 0 *   Example: isLess(4,5) = 1.*   Legal ops: ! ~ & ^ | + << >>*   Max ops: 24*   Rating: 3*/
int isLess(int x, int y) {int ny = ~y;return ((((x+ny+1)&(x^ny))|(x&ny))>>0x1f)&1;
}
/* * isLessOrEqual - if x <= y  then return 1, else return 0 *   Example: isLessOrEqual(4,5) = 1.*   Legal ops: ! ~ & ^ | + << >>*   Max ops: 24*   Rating: 3*/
int isLessOrEqual(int x, int y) {int ny = ~y;return ((((((x+ny+1)&(x^ny))|(x&ny))>>0x1f))&1)|!(x^y);
}
/** trueFiveEighths - multiplies by 5/8 rounding toward 0,*  avoiding errors due to overflow*  Examples: trueFiveEighths(11) = 6*            trueFiveEighths(-9) = -5*            trueFiveEighths(0x30000000) = 0x1E000000 (no overflow)*  Legal ops: ! ~ & ^ | + << >>*  Max ops: 25*  Rating: 4*/
int trueFiveEighths(int x) {
int const eights = x >> 3;
int const rem = x & 7;return eights + (eights << 2) + (rem + (rem << 2) + (x >> 31 & 7) >> 3);
}/*int s = (x>>31)&1;int c = (s<<3)+~s+1;int h = ((x&(0xFF<<24))+c)>>3;int l = (x&~(0xFF<<24));return (h<<2)+h+((((l<<2)+l)+c)>>3);*/
/** parityCheck - returns 1 if x contains an odd number of 1's*   Examples: parityCheck(5) = 0, parityCheck(7) = 1*   Legal ops: ! ~ & ^ | + << >>*   Max ops: 20*   Rating: 4*/
int parityCheck(int x) {x ^= (x>>16);x ^= (x>>8);x ^= (x>>4);x ^= (x>>2);x ^= (x>>1);return x&1;
}
/* * rempwr2 - Compute x%(2^n), for 0 <= n <= 30*   Negative arguments should yield negative remainders*   Examples: rempwr2(15,2) = 3, rempwr2(-35,3) = -3*   Legal ops: ! ~ & ^ | + << >>*   Max ops: 20*   Rating: 3*/
int rempwr2(int x, int n) {int s = x>>31;x = (x+s)^s;x &= ((~0)+(1<<n));return (x^s)+~s+1;
}
/* howManyBits - return the minimum number of bits required to represent x in*             two's complement*  Examples: howManyBits(12) = 5*            howManyBits(298) = 10*            howManyBits(-5) = 4*            howManyBits(0)  = 1*            howManyBits(-1) = 1*            howManyBits(0x80000000) = 32*  Legal ops: ! ~ & ^ | + << >>*  Max ops: 90*  Rating: 4*/
int howManyBits(int x) {int temp = x ^ (x << 1);int bit_16,bit_8,bit_4,bit_2,bit_1;bit_16 = !!(temp >> 16) << 4;temp = temp >> bit_16;bit_8 = !!(temp >> 8) << 3;temp = temp >> bit_8;bit_4 = !!(temp >> 4) << 2;temp = temp >> bit_4;bit_2 = !!(temp >> 2) << 1;temp = temp >> bit_2;bit_1 = !!(temp >> 1);return 1 + bit_1 + bit_2 + bit_4 + bit_8 + bit_16;
}
/** ilog2 - return floor(log base 2 of x), where x > 0*   Example: ilog2(16) = 4*   Legal ops: ! ~ & ^ | + << >>*   Max ops: 90*   Rating: 4*/
int ilog2(int x) {int count = 0;count = (!!(x>>16)) << 4;count =count+((!!(x>>(8 + count)))<<3);count =count+((!!(x>>(4 + count)))<<2);count =count+((!!(x>>(2 + count)))<<1);count =count+((!!(x>>(1 + count)))<<0);return count;
}

计算机是一种能够按照程序自动进行数据处理和运算的电子设备。计算机的发展可以分为四个阶段:机械计算机、电子管计算机、晶体管计算机和集成电路计算机。

机械计算机是最早的计算机,它们使用齿轮和滑动杆等机械装置进行计算。电子管计算机是第一代计算机,它们使用电子管代替了机械装置,大大提高了计算速度。晶体管计算机是第二代计算机,它们使用晶体管代替了电子管,使得计算机更加小型化和可靠化。集成电路计算机是第三代计算机,它们使用集成电路代替了晶体管,使得计算机更加高效和便携。

计算机的原理是基于二进制数制和逻辑电路。计算机中的所有数据都是以二进制形式存储和处理的,逻辑电路则负责对这些数据进行运算和控制。计算机的核心是中央处理器(CPU),它包含算术逻辑单元(ALU)、控制单元(CU)和寄存器等组件,负责执行指令和处理数据。

除了硬件,计算机还需要软件来实现各种功能。软件可以分为系统软件和应用软件两类。系统软件包括操作系统、编译器和驱动程序等,它们负责管理计算机的资源和提供基本的功能。应用软件则是为了满足用户的需求而开发的各种程序,例如办公软件、游戏和浏览器等。

总之,计算机是一种非常重要的电子设备,它的发展历程经历了多个阶段,从机械计算机到集成电路计算机,每一代计算机都有着自己的特点和优势。计算机的原理基于二进制数制和逻辑电路,它需要硬件和软件的配合才能实现各种功能。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL之性能分析和系统调优

MySQL之性能分析和系统调优 性能分析 查看执行计划 EXPLAIN EXPLAIN作为MySQL的性能分析神器&#xff0c;可以用来分析SQL执行计划&#xff0c;需要理解分析结果可以帮助我们优化SQL explain select … from … [where ...]TABLE 表名 查询的每一行记录都对于着一张表 id 该…

代码随想录训练营第五十二天300.最长递增子序列674. 最长连续递增序列718. 最长重复子数组

300.最长递增子序列 题目链接 300. 最长递增子序列 - 力扣&#xff08;LeetCode&#xff09; 讲解链接 代码随想录 (programmercarl.com) 定义dp数组dp[i]为以num[i]为结尾的增长数组的最大长度&#xff1b; 此时dp[0]1; i遍历nums数组的长度&#xff0c;逐渐形成以每个元素结…

【防抖和节流】Vue和React当中的防抖和节流处理

1 防抖和节流函数 /*** 防抖原理&#xff1a;一定时间内&#xff0c;只有最后一次操作&#xff0c;再过wait毫秒后才执行函数* 防抖又分为立即执行和延迟执行* - 立即执行&#xff1a;点击第一次就会执行&#xff0c;后续指定时间内的点击不会生效* - 延迟执行&#xff1a;指定…

干了3年功能测试,技术回到原点

简单概括一下 先说一下自己的情况&#xff0c;普通本科&#xff0c;18年通过校招进入深圳某软件公司&#xff0c;干了3年多的功能测试&#xff0c;21年的那会&#xff0c;因为大环境不好&#xff0c;我整个人心惊胆战的&#xff0c;怕自己卷铺盖走人了&#xff0c;我感觉自己不…

推荐一款优秀的json在线格式化校验工具

www.bjson.chat 这个工具是目前见过最好用的JSON工具&#xff0c; 页面简单&#xff0c;支持text&#xff0c;tree两种显示格式&#xff0c;关键词高亮显示支持亮白和暗黑两种风格最主要的是如果要格式化很长的json的话&#xff0c;这个工具还可以全屏显示&#xff0c;简直不…

非标设计之螺纹选型

目录 一、螺纹种类二、 螺纹加工&#xff1a;第一大类&#xff1a;螺纹切削第二大类&#xff1a;螺纹滚压三、螺丝钻孔和选型&#xff1a; 一、螺纹种类 一、螺纹种类 按牙型可分为三角形、梯形、矩形、锯齿形和圆弧螺纹&#xff1b; 按螺纹旋向可分为左旋和右旋&#xff1b;…

IDEA2023.2.3 servlet.java中import com.alibaba.fastjson.JSONObject;标红问题解决

IDEA提示 java: 程序包com.alibaba.fastjson不存在_mob64ca12e98e58的技术博客_51CTO博客 2023/12/1 域名小李

外文文献如何高效阅读

外文文献阅读需要一定的技巧和方法&#xff0c;以下是一些高效阅读外文文献的建议&#xff1a; 预览&#xff1a;在开始阅读之前&#xff0c;先快速浏览全文&#xff0c;了解大意和主题。这有助于您更好地理解文章的重点和目的。 标记&#xff1a;使用笔记或荧光笔等工具标记…

电脑如何录音?适合初学者的详细教程

“电脑怎么录音呀&#xff1f;参加了一个学校举办的短视频大赛&#xff0c;视频拍摄都很顺利&#xff0c;音乐却出了问题&#xff0c;朋友说可以用电脑录制一段音乐应付一下&#xff0c;可是我不会操作&#xff0c;有哪位大佬教教我&#xff01;” 声音是一种强大的媒介&#…

七天.NET 8操作SQLite入门到实战 - 第五天引入SQLite-net ORM并封装常用方法(SQLiteHelper)

前言 上一章节我们搭建好了EasySQLite的前后端框架&#xff0c;今天我们的主要任务是在后端框架中引入SQLite-net ORM并封装常用方法&#xff08;SQLiteHelper&#xff09;。 七天.NET 8操作SQLite入门到实战详细教程 第一天 SQLite 简介第二天 在 Windows 上配置 SQLite环境…

C语言每日一题(43)旋转链表

力扣 61 旋转链表 题目描述 给你一个链表的头节点 head &#xff0c;旋转链表&#xff0c;将链表每个节点向右移动 k 个位置。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], k 2 输出&#xff1a;[4,5,1,2,3]示例 2&#xff1a; 输入&#xff1a;head [0,1,2], …

酒店 KPI绩效考核指标及应用

“路遥知马力&#xff0c;日久见人心”&#xff0c;目前国内各类型酒店风起云涌&#xff0c;大有在市场竞争中一比高下之势&#xff0c;各路精英受经济型酒店低投入高回报的市场利益驱动&#xff0c;都分分抢占市场&#xff0c;从而使国内经济型酒店的数量不断增加&#xff0c;…

⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)

1.这里我代码没啥问题~~~编辑器里也没毛病 void Start(){// 加载底图和上层图片string backgroundImagePath Application.streamingAssetsPath "/background.jpg";Texture2D backgroundTexture new Texture2D(2, 2);byte[] backgroundImageData System.IO.File.R…

永恒之蓝漏洞复现

网安2211-202221336029 目录 1.介绍&#xff1a; 2.操作&#xff1a; 1.实验环境&#xff1a; 2.渗透实现 3.实现后操作 3.总结&#xff1a; 1.介绍&#xff1a; 1.漏洞描述&#xff1a;Eternalblue通过TCP端口445和139来利用SMBv1和NBT中的远程代码执行漏洞&#xff0…

【无标题】mmocr在云服务器上

这里写目录标题 1、创建虚拟环境2、切换和退出conda虚拟环境3. 显示、复制&#xff08;克隆&#xff09;、删除虚拟环境4、删除环境安装指示中 cd进项目文件夹开始训练模型&#xff08;python XXX.py | tee record.txt 记录训练结果&#xff09;如何在Linux服务器上安装Anacond…

数据结构--->单链表

文章目录 链表链表的分类 单链表单链表的存储结构单链表主要实现的接口函数单链表尾插动态申请新节点单链表头插单链表的尾删单链表的头删在指定位置之前插入单链表查找插入 在指定位置之后插删除指定位置元素删除指定位置之后的元素顺序输出链表销毁单链表 顺序表和单链表的区…

苍穹外卖--客户催单

需求分析 用户在小程序中点击催单按钮后&#xff0c;需要第一时间通知外卖商家 设计思路&#xff1a;* 通过WebSocket实现管理端页面和服务端保持长连接状态当用户点击催单按钮后&#xff0c;调用WebSocket的相关API实现服务端向客户端推送消息客户端浏览器解析服务端推送的…

【超全】JavaScript知识速查:JavaScript ES6标准语法

JavaScript知识速查 文章目录 JavaScript知识速查[toc]JavaScript ES6标准语法1. 变量和常量以及块级区域变量 (let):常量 (const): 2. 模板字符串3. 解构赋值数组解构:对象解构: 4. 数组和对象的扩展扩展运算符 (...):Array.from:Object.assign: 5. 类和对象定义类:继承: 6.箭…

Redis主从与哨兵架构详解

目录 主从架构 主从环境搭建 主从复制流程 1. 全量复制 2. 部分复制 主从风暴 哨兵架构 概念 哨兵环境搭建 主从架构 主从环境搭建 1. 复制一份redis.conf文件, 修改下面几行配置 port 6380 pidfile /var/run/redis_6380.pid logfile "6380.log" dir /usr/…

基于A*的网格地图最短路径问题求解

基于A*的网格地图最短路径问题求解 一、A*算法介绍、原理及步骤二、Dijkstra算法和A*的区别三、A*算法应用场景四、启发函数五、距离六、基于A*的网格地图最短路径问题求解实例分析完整代码 七、A*算法的改进思路 一、A*算法介绍、原理及步骤 A*搜索算法&#xff08;A star al…