接题目:

函数sra用逻辑右移(由值xsrl给出)来完成算术右移,后面的其他操作不包括右移或者除法。可以通过计算8*sizeof(int)来确定数据类型int中的位数w。位移量k的取值范围为0~w-1。

unsigned srl(unsigned x, int k) {/* Perform shift arithmatically */unsigned xsra = (int)x >> k;...
}int sra(int x, int k) {/* Perform shift logically */int xsrl = (unsigned)x >> k;...
}

答案

#include <stdio.h>
#include <assert.h>unsigned srl(unsigned x, int k) { unsigned xsra = (int)x >> k; int w = sizeof(int) << 3; int mask = (int)-1 << (w - k); return xsra & ~mask;
}int sra(int x, int k) {int xsrl = (unsigned)x >> k; int w = sizeof(int) << 3;int mask = (int)-1 << (w - k); //let mask remain unchanged when the first bit of x is 1, otherwise 0. int m = 1 << (w - 1); mask &= ! (x & m) - 1; return xsrl | mask;
}int main(int argc, char* argv[]) {unsigned test_unsigned = 0x12345678; int test_int = 0x12345678; assert(srl(test_unsigned, 4) == test_unsigned >> 4);assert(sra(test_int, 4) == test_int >> 4);test_unsigned = 0x87654321; test_int = 0x87654321; assert(srl(test_unsigned, 4) == test_unsigned >> 4); assert(sra(test_int, 4) == test_int >> 4);return 0;
}

2.63-将下面的C函数代码补充完整。函数srl用算术右移(由值xsra给出)来完成逻辑右移,后面的其他操作不包括右移或者除法。相关推荐

  1. 现我们数据库中已有的一张新闻表news,结构如下:根据表结构我们创建一个News对象:将下面代码补充完整,完成数据库连接、删除、更新以及查找方法。其中删除方法是通过用户传入新闻id来进行删除。

    现我们数据库中已有的一张新闻表news,结构如下:根据表结构我们创建一个News对象:将下面代码补充完整,完成数据库连接.删除.更新以及查找方法.其中删除方法是通过用户传入新闻id来进行删除 题目 1 ...

  2. python函数代码,这个python函数代码如何工作?

    这个with_default_value函数经常被称为(不精确地)为"闭包"(技术上,闭包是返回的内部函数,这里是newfunc – 参见例如 here).更一般地说,with_d ...

  3. c语言代码查错软件,Ubuntu下面的C语言代码检查工具 Splint

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 看一下下面的代码(当然包括错误,以检验splint的功能): #include int main(int argc,char* argv[]){ int  ...

  4. php可变函数代码,PHP可变函数

    PHP支持可变函数的概念.通常用在回调函数.函数列表或者根据动态参数来调用不同的函数. 那么如何使用呢? #定义三个函数 function apple() { echo "I'm an ap ...

  5. php系统函数代码,PHP自定义函数+系统函数库(代码示例)

    全局变量$n = 5; //全局变量 function fun1(){ global $n; echo '我在函数体内也可以调用全局变量n,它的值是:' , $n;//5 $n++; } fun1() ...

  6. php分页函数代码,PHP分页函数代码分享

    //$count为总条目数,$page为当前页码,$page_size为每页显示条目数 function show_page($count,$page,$page_size) { $page_coun ...

  7. c++某商店开展买一送一活动,购买两件商品时,只需支付价格较高的商品的金额。要求程序在输入两个商品的价格后,输出所应支付的金额,请根据裁判程序编写函数cut,将代码补充完整。

    #include using namespace std; //请在此处添加代码 int cut(float x, float y) { float max; max = (x > y) ? x ...

  8. python count函数代码_python count函数用法详解_后端开发

    fgetc函数的作用详解_后端开发 fgetc函数的作用是从指定文件读入一个字符,要求文件的打开方式必须是以读或读写的方式或者追加的方 式,只写方式是不能读的. 在python中可以使用"c ...

  9. python max函数代码_Python Max函数

    当列表中的项目不是同一类型时,max函数如何工作? 例如,以下代码返回[1,'3′] max([1,52,53],[1,'3']) => [1,'3'] 解决方法: 在Python2中,不同类型 ...

最新文章

  1. AI 的十种 “新数学”
  2. 参加51CTO学院软考培训,我通过啦!
  3. 一周一论文(翻译)——[VLDB 18] Chi:分布式流处理系统下可扩展的、可编程的控制计划模块
  4. 线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。 进程拥有这
  5. curl 发送带有Authorization的post请求命令
  6. g30u盘启动 中科曙光1620_I620-G30
  7. oracle主备不同步,主备环境下数据不一致重新部署复制
  8. 【OpenCV】图像线性混合
  9. SpringBoot系列六:SpringBoot整合Tomcat
  10. java排序之选择排序
  11. 商业创业计划书ppt你的绝佳选择
  12. 扫雷小游戏 纯C语言/C++开发分享成果和记录
  13. python xgboost建模过程_机器学习——XGBoost大杀器,XGBoost模型原理,XGBoost参数含义...
  14. 系统启动故障恢复控制台应用实例
  15. The-Swift-2.0-Programming-Language-playground
  16. 读书笔记-财务报表分析的目的
  17. MicroSoft Visual Studio 2013 社区版下载地址
  18. Win7防火墙允许ping
  19. mysql字段值是什么_什么是数据库字段值
  20. 多少达芬奇发明实际起作用

热门文章

  1. 视频码率,帧率和分辨率
  2. Attempted read from closed stream
  3. 微软的现实困难:产品需要再次变“酷”
  4. 初三毕业班主任压力过大割喉自尽
  5. 【Vue】Emitted value instead of an instance of Error
  6. 零基础自学画画的方法有哪些
  7. 策略模式、观察者模式、状态模式原理及实例
  8. android白色暗色主题,使用Kotlin开发Android应用(12) - Dark theme 暗色主题
  9. dede模板加入php无法生成栏目,织梦后台更新后栏目无法生成,怎么办?
  10. 杂谈||Python实现计算含保底抽卡出金期望