当前位置: 代码迷 >> 综合 >> csapp-lad1
  详细解决方案

csapp-lad1

热度:52   发布时间:2023-12-06 09:35:07.0

1,csapp-lad1环境搭建

        https://blog.csdn.net/qq_45703010/category_11428808.html( 可以参考一下)

        这个首先就是虚拟机

        VMware - Delivering a Digital Foundation For Businesses

       然后镜像再者更新GCC

2 解题

1 bitXor

目录

1,csapp-lad1环境搭建

2 解题

1 bitXor


1 bitXor

用于 ‘非’ ‘和’ 两种运算实现异或运算

这个可以通过离散数学的方式进行解决然后我也不太懂我就凭感觉做出了就停突然做出了也许这就是狗运吧!

2 tmin

 这个怎莫说呢就感觉是白给的

要求返回一个最小值

 可以看一下就单纯 <<31 位就行

3 isTmax

判断一个数是不是最大值

这个题做之前你要确定他是有符号为的所以说32位最大值为 0x7fffffff 即我想的是在他原有的基础上加一若是最大值的话他会发生栈溢出变成0x80000000然后另X等于两个相加和即X变成最大的负值0xffffffff然后我们在对A进行!如果正常情况A=0(排除x=ffffffff,等特出情况) 然后对x取反令其相加 注意:x取反也是0这样二者相加在 !一下只有同时成立返回值才为1。

4. allOddBits

此题意思为只有所有奇数位全为零是返回值才为一

这个你要确定奇数位全为1具四位 1010 这个你要知道32位是 0位到31位 的所以奇数位全为1即

0xaaaaaaaa时返回值为一 由于这个操作两位所以说最大为0xaa再通过 << 移位符进行将r变为0xaaaaaaaa然后通过与X进行&符后再与r进行异或若果相同则返回值为1

5. negate

 这个也是白给题求一个数的负数即按位取反加一

6. isAsciiDigit

 

这个是判断一个数是否符合 0x30 <= x <= 0x39

这个我是通过令其相减判断最后符号位来判断是否符合该范围最后通过他们同时为零来判断返回值。

7.conditional

 三目运算