gpt4 book ai didi

c - K&R的练习2-6 : Do not understand input/output

转载 作者:行者123 更新时间:2023-11-30 15:08:58 25 4
gpt4 key购买 nike

K&R 的练习 2-6:

Write a function setbits(x,p,n,y) that returns x with the n bits that begin at position p set to the rightmost n bits of y, leaving the other bits unchanged.

这是我对示例输入/输出的解释:

unsigned x = 315;
int p = 2;
int n = 3;
unsigned y = 9;
printf("%d\n", setbits(x, p, n, y)); // 295

这是我的推理。

315 的位置 2 处有 3 位:

0000 0001 0011 1011
- --

最右边的 3 位代表 9:

0000 0000 0000 1001
---

将 9 最右边的 3 位设置为从 2 开始的 3 位(315 => 295):

0000 0001 0010 0111
- --

我编写了一些代码,然后想将其与其他解决方案进行检查,for example 。我在网上找到的两个给出了不同的答案,313:

0000 0001 0011 1001
--- ???

我错过了什么?

最佳答案

问题的描述有点含糊。你正在翻译“从位置 p 开始的 n 位”表示位 p、p+1、...、p+n-1。您链接到的页面似乎说从位置 p 开始的 n 位是位 p、p-1、...、p-n+1。因此,从第 2 位开始的 3 位将是位 2、1、0,即最右边的三位。

关于c - K&R的练习2-6 : Do not understand input/output,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36956392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com