k&r 与位操作混淆

2023-11-26

练习是: 编写一个函数 setbits(x,p,n,y),返回 x,并将从位置 p 开始的 n 位设置为 y 最右边的 n 位,其他位保持不变。

我尝试的解决方案是:

#include <stdio.h>

unsigned setbits(unsigned, int, int, unsigned);

int main(void)
{
    printf("%u\n", setbits(256, 4, 2, 255));
    return 0;
}

unsigned setbits(unsigned x, int p, int n, unsigned y)
{
    return (x >> (p + 1 - n)) | (1 << (n & y));
}

这可能是不正确的,但我走的路正确吗?如果不是,我做错了什么?我不确定为什么我不完全理解这一点,但我花了大约一个小时试图想出这一点。

Thanks.


这是你的算法:

  1. 如果 n 为 0,则返回 x。
  2. 取 1,左移 n 次,然后减 1。调用此mask.
  3. 左移掩码 p 次称之为mask2.
  4. Andx 与 mask2 的倒数。Andy 带掩码,左移 p 次。
  5. Or这两个操作的结果,并返回该值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

k&r 与位操作混淆 的相关文章

  • C 编程 - 文件 - fwrite

    我有一个关于编程和文件的问题 while current NULL if current gt Id Doctor 0 current current gt next id doc current gt Id Doctor if curre
  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • 为什么 C# Array.BinarySearch 这么快?

    我已经实施了一个很简单用于在整数数组中查找整数的 C 中的 binarySearch 实现 二分查找 static int binarySearch int arr int i int low 0 high arr Length 1 mid
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • 在 Windows 窗体中保存带有 Alpha 通道的单色位图会保存不同(错误)的颜色

    在 C NET 2 0 Windows 窗体 Visual Studio Express 2010 中 我保存由相同颜色组成的图像 Bitmap bitmap new Bitmap width height PixelFormat Form
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • 如何从两个不同的项目中获取文件夹的相对路径

    我有两个项目和一个共享库 用于从此文件夹加载图像 C MainProject Project1 Images 项目1的文件夹 C MainProject Project1 Files Bin x86 Debug 其中有project1 ex
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • 防止软键盘被关闭

    有很多与如何以编程方式显示 隐藏软键盘相关的问题 然而 众所周知 android 后退按钮会导致键盘消失 有没有办法阻止用户通过按后退按钮来关闭键盘 我尝试捕获后退按钮 但是当键盘显示在我的活动中的 onKeyDown 时 按下后退键并且软
  • 将 pandas 数据框中的对象列转换为日期时间

    我在 pandas 数据框中有一个格式为 dd mm yyyy 的对象列 我想用 to datetime 进行转换 我尝试使用以下命令将其转换为日期时间 df Time stamp pd to datetime df Time stamp
  • Xcode - 目标特定本地化

    我的项目包括多个目标 每个目标用于不同的客户 有些客户需要特定的本地化 我不希望所有客户都获得这种特定的本地化 由于本地化是在项目级别处理的 因此我找不到仅针对特定目标添加本地化的方法 有什么建议如何去做吗 寻找稳定的选项 无需在每次构建之
  • 多次查询同一个表但在不同的列中mysql

    我正在尝试获取更多列来总结两个不同表的结果 SET start res 20150301 SET finish res 20150501 SET finish check 20150801 SET start check 20150301
  • 转储 g++ 中的包含路径

    我正在尝试编写一些构建脚本 并想确定包含的内容是否是系统包含的 所以我想要g 告诉我它正在使用的包含路径 cpp v似乎是明显的最佳选择 但它没有给我 C 路径 所以我尝试 g Xpreprocessor v 这不太正确 g 捕捉到 v因为
  • Flask 应用程序启动后运行代码

    我的目标是在 Flask 应用程序启动后运行任意代码 这是我所得到的 def run from webapp import app app run debug True use reloader False 理想情况下我能够这样做 def
  • 是否有开源线程安全的 C++ 对象池实现? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我需要创建一个套接字连接池 该连接池将服务于多个工作线程 是否有一个线程安全的对象池实现 其功能类似于 Apache Commons Generic
  • 如何使用 JQuery/JS 获取给定 url(外部 url)的网页标题

    我是新手 如果这是一个愚蠢的问题 请原谅 所以我试图使用 JQuery JS 获取 URL 的标题 我不想加载 url 的内容 然后解析其中的标签 让我说得更清楚 我有一组网址 比如说 20 个 我想显示它们的标题 我指的网址不是当前的网址
  • 使 Spring bean 的行为类似于 ExecutorService 的 ThreadLocal 实例

    在我的网络应用程序中 我有一个后台服务 该服务使用包含 Engine 类和ExecutorService配置为使用多个线程并接受 GeneratorTasks Component public class Generator Autowir
  • 在 Entity Framework 4.1 Code First 中手动生成主键的最佳方法是什么

    在 Entity Framework 4 1 Code First 中手动生成主键的最佳方法是什么 我正在对 ASP NET MVC 3 进行编程 并使用存储库模式 我目前使用以下代码按顺序生成密钥 Code First Class Pub
  • 带有自定义比较函数对象的 STL Map

    我想使用 STL 的 Map 容器通过使用二进制数据作为键来查找指针 所以我编写了这个自定义函数对象 struct my cmp bool operator unsigned char const a unsigned char const
  • Boost 的 y=Ax 线性代数解

    boost有吗 其中 A y 和 x 分别是矩阵 稀疏且可以很大 和向量 y 或 x 可能是未知的 我在这里似乎找不到它 http www boost org doc libs 1 39 0 libs numeric ublas doc i
  • 在单元测试中比较 numpy float 数组[重复]

    这个问题在这里已经有答案了 实现比较两个 numpy float 数组的单元测试的最佳方法是什么 我尝试过unittest assertEqual 但对浮点数组不起作用 因为浮点永远不会100 相等 我不能使用assertAlmostEqu
  • printf 和 ++ 运算符[重复]

    这个问题在这里已经有答案了 include
  • 将字符串添加到逐字字符串文字中

    我有一个名为 defaultPath 的路径 我想将其添加到这个逐字字符串文字中 但可以完全获取它周围的引号 C Mavro MavBridge Server MavBridgeService exe service data Data 我
  • 在 ColdFusion 中使用表单数组?

    我不知道如何在 ColdFusion 9 中处理这个问题 我有一个正在提交的表单 POST 其中包含元素复选框 称为 items 当我做一个
  • Nosetest 包括不需要的父目录

    我试图将鼻子测试限制到特定目录 但是在测试运行期间 它包括我要定位的目录的父目录 这样做会引发错误 以下是测试运行输出的关键要素 nose importer DEBUG Add path projects myproject myproje
  • Pandas Dataframe 到 JSON 层次结构

    我已经详尽地审查 尝试了与这一挑战相对应的所有其他问题的实现 但尚未找到解决方案 问题 如何将员工和主管对转换为分层 JSON 结构以用于 D3 可视化 级别数量未知 因此它必须是动态的 我有一个包含五列的数据框 是的 我意识到这不是 Of
  • 具有特定格式的日期到 XMLGregorianCalendar

    我得到一个 Date 对象 我需要将其转换为 XMLGregorianCalendar 特定格式 我尝试了以下方法 String formattedDate sdf format categoryData getBulkCollection
  • k&r 与位操作混淆

    练习是 编写一个函数 setbits x p n y 返回 x 并将从位置 p 开始的 n 位设置为 y 最右边的 n 位 其他位保持不变 我尝试的解决方案是 include