深入理解计算机系统 家庭作业 2.63

/* subst.c -- 在字符串中替换 */
#include <stdio.h>

unsigned srl(unsigned x,int k);
int sra(int x,int k);

int main(void)
{

    printf("xsra = %d\n",srl(-1,1));
     printf("xsrl = %d\n",sra(-1,1));
  return 0;
}

unsigned srl(unsigned x,int k){
    unsigned xsra = (int) x>>k;
    xsra = (~(-1<<(sizeof(int)*4-k))) & xsra;
    return xsra;
}

int sra(int x,int k){
    int xsrl = (unsigned) x>>k;
    xsrl = ((-1<<(sizeof(int)*4-k))) | xsrl;
    return xsrl;
}

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-01 10:02:02       75 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-01 10:02:02       80 阅读
  3. 在Django里面运行非项目文件

    2024-04-01 10:02:02       64 阅读
  4. Python语言-面向对象

    2024-04-01 10:02:02       75 阅读

热门阅读

  1. 口语 4.1

    2024-04-01 10:02:02       35 阅读
  2. 二叉树问题记录

    2024-04-01 10:02:02       38 阅读
  3. Vue3.0中的ref与reactive

    2024-04-01 10:02:02       40 阅读
  4. SQL语言基础

    2024-04-01 10:02:02       41 阅读
  5. C++ 程序自动重启(windows 有源码)

    2024-04-01 10:02:02       42 阅读
  6. Python 练习 LeetCode 贪心算法

    2024-04-01 10:02:02       29 阅读
  7. Ubuntu 16.04/18.04 LTS内核降级及通过GURB指定内核

    2024-04-01 10:02:02       36 阅读
  8. 算法思想 - 动态规划算法

    2024-04-01 10:02:02       35 阅读
  9. UniswapV2周边合约学习(五)-- ExampleFlashSwap.sol

    2024-04-01 10:02:02       38 阅读