C# 中反转 1 位

2024-04-04

我有 1 位byte(始终处于最低顺序位置)我想反转。 即给定 00000001 我想要得到 00000000,而对于 00000000 我想要 00000001。

我是这样解决的:

bit > 0 ? 0 : 1;

我很好奇还能怎么做。


怎么样:

bit ^= 1;

这只是将第一位与 1 进行异或,从而切换它。

如果您想翻转位#N,从右侧的 0 向左侧的 7 计数(对于一个字节),您可以使用以下表达式:

bit ^= (1 << N);

这不会干扰任何其他位,但如果该值仅是十进制值中的 0 或 1(即所有其他位均为 0),则也可以使用以下内容:

bit = 1 - bit;

同样,如果只设置一个位,则可以使用与第一个翻转位 #N 中相同的值作为 1:

bit = (1 << N) - bit;

当然,此时您实际上并没有以相同的方式进行位操作。

您的表达式也很好,但同样会操纵整个值。

另外,如果您将单个位表示为bool值,你可以这样做:

bit = !bit;

这会切换该值。


更多的是一个笑话: 当然,“企业”方式是使用查找表:

byte[] bitTranslations = new byte[256];
bitTranslations[0] = 1;
bitTranslations[1] = 0;

bit = bitTranslations[bit];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 中反转 1 位 的相关文章

  • 如何将非静态类成员“std::bind”绑定到 Win32 回调函数“WNDPROC”?

    我正在尝试将非静态类成员绑定到标准WNDPROC http msdn microsoft com en us library ms633573 aspx功能 我知道我可以通过将类成员设为静态来简单地做到这一点 但是 作为一名 C 11 ST
  • MVC 在布局代码之前执行视图代码并破坏我的脚本顺序

    我正在尝试将所有 javascript 包含内容移至页面底部 我正在将 MVC 与 Razor 一起使用 我编写了一个辅助方法来注册脚本 它按注册顺序保留脚本 并排除重复的内容 Html RegisterScript scripts som
  • 复制 std::function 的成本有多高?

    While std function是可移动的 但在某些情况下不可能或不方便 复制它会受到重大处罚吗 它是否可能取决于捕获变量的大小 如果它是使用 lambda 表达式创建的 它依赖于实现吗 std function通常被实现为值语义 小缓
  • C中的malloc内存分配方案

    我在 C 中尝试使用 malloc 发现 malloc 在分配了一些内存后浪费了一些空间 下面是我用来测试 malloc 的一段代码 include
  • 在 C 中匹配二进制模式

    我目前正在开发一个 C 程序 需要解析一些定制的数据结构 幸运的是我知道它们是如何构造的 但是我不确定如何在 C 中实现我的解析器 每个结构的长度都是 32 位 并且每个结构都可以通过其二进制签名来识别 举个例子 有两个我感兴趣的特定结构
  • 为什么极端下派生类(多重虚拟继承)的大小包括超类成员大小的两倍?

    include
  • 如何区分用户点击链接和页面自动重定向?

    拥有 C WebBrowser control http msdn microsoft com en us library system windows forms webbrowser aspx在我的 WinForms 应用程序中 并意识
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 如何检测表单的任何控件的变化?

    如何检测 C 中表单的任何控件的更改 由于我在一个表单上有许多控件 并且如果表单中的任何控件值发生更改 我需要禁用按钮 我正在寻找一些内置函数 事件处理程序 属性 并且不想为此创建自定义函数 不 我不知道任何时候都会触发任何事件any控制表
  • Azure 辅助角色“请求输入之一超出范围”的内部异常。

    我在辅助角色中调用 CloudTableClient CreateTableIfNotExist 方法 但收到一个异常 其中包含 请求输入之一超出范围 的内部异常 我做了一些研究 发现这是由于将表命名为非法表名引起的 但是 我尝试为我的表命
  • 如何禁用 fread() 中的缓冲?

    我正在使用 fread 和 fwrite 读取和写入套接字 我相信这些函数用于缓冲输入和输出 有什么方法可以在仍然使用这些功能的同时禁用缓冲吗 Edit 我正在构建一个远程桌面应用程序 远程客户端似乎 落后于服务器 我不知道可能是什么原因
  • CMake 无法确定目标的链接器语言

    首先 我查看了this https stackoverflow com questions 11801186 cmake unable to determine linker language with c发帖并找不到解决我的问题的方法 我
  • “接口”类似于 boost::bind 的语义

    我希望能够将 Java 的接口语义与 C 结合起来 起初 我用过boost signal为给定事件回调显式注册的成员函数 这非常有效 但后来我发现一些函数回调池是相关的 因此将它们抽象出来并立即注册所有实例的相关回调是有意义的 但我了解到的
  • 使用 C# 读取 Soap 消息

  • C++ 函数重载类似转换

    我收到一个错误 指出两个重载具有相似的转换 我尝试了太多的事情 但没有任何帮助 这是那段代码 CString GetInput int numberOfInput BOOL clearBuffer FALSE UINT timeout IN
  • 按 Esc 按键关闭 Ajax Modal 弹出窗口

    我已经使用 Ajax 显示了一个面板弹出窗口 我要做的是当用户按 Esc 键时关闭该窗口 这可能吗 如果有人知道这一点或以前做过这一点 请帮助我 Thanks 通过以下链接 您可以通过按退出按钮轻松关闭窗口 http www codepro
  • 方法优化 - C#

    我开发了一种方法 允许我通过参数传入表 字符串 列数组 字符串 和值数组 对象 然后使用这些参数创建参数化查询 虽然它工作得很好 但代码的长度以及多个 for 循环散发出一种代码味道 特别是我觉得我用来在列和值之间插入逗号的方法可以用不同的
  • 从 Excel 应用程序对象中查找位数(32 位/64 位)?

    是否可以从 Microsoft Office Interop Excel ApplicationClass 确定 Excel 是以 32 位还是 64 位运行 Edit该解决方案应该适用于 Excel 2010 和 Excel 2007 此
  • 无法接收 UDP Windows RT

    我正在为 Windows 8 RT 编写一个 Windows Store Metro Modern RT 应用程序 需要在端口 49030 上接收 UDP 数据包 但我似乎无法接收任何数据包 我已按照使用教程进行操作DatagramSock
  • Oracle Data Provider for .NET 不支持 Oracle 19.0.48.0.0

    我们刚刚升级到 Oracle 19c 19 3 0 所有应用程序都停止工作并出现以下错误消息 Oracle Data Provider for NET 不支持 Oracle 19 0 48 0 0 我将 Oracle ManagedData

随机推荐

  • 什么是 git-cache 以及 git-cache 中存储了什么

    事实上 我读了很多关于 git 的东西 我知道我可以通过删除缓存git rm cached 命令但我无法理解这个概念git 缓存 什么是缓存 而GIT中的缓存位置又在哪里呢 该缓存是存储在 RAM 中还是文件中 git 中使用缓存来提高性能
  • Android Studio 中的多个本机模块

    我有一个当前在 Visual Studio 中设置的 C 代码库 在 Windows 上运行 其中包含多个具有相互依赖关系的项目 我正在尝试将其转移到 Android Studio 以使其在 Android 上运行 我熟悉 Visual S
  • Facebook Unity SDK,如何强制使用webview而不是FB App登录

    默认情况下 如果用户安装了 FB Unity SDK 它将尝试使用 FB App 进行登录 否则 它将回退到使用基于 HTML 的弹出窗口来让用户登录 然而 FB 应用程序仅适用于 API 1 0 basic info 权限 将因 publ
  • 第 8 章 Rails 教程记住令牌错误

    本章介绍添加记住令牌 以确保记住用户登录状态 并且仅当用户明确注销时才清除会话 我了解在我的应用程序中拥有此功能的重要性 因此希望确保它正常工作 但是 当我运行时 我遇到了很多错误 bundle exec rspec spec 我怀疑它们与
  • 从 SQL 表中的行中删除尾随“:”字符

    我有数百万行的表 每行都有一个 nvarchar max 列 当我填充数据库时 我忘记删除结尾的 字符 遍历每一行并删除最后一个字符的最快 最有效的方法是什么 我认为必须有一种比使用看起来昂贵的 REPLACE 更快的方法来做到这一点 这是
  • 我们可以在 Android 中的短信到达收件箱之前将其删除吗?

    我正在从收件箱中删除一条短信 但我想知道 如何在它到达收件箱之前将其删除 Yes 尽管对这个问题有一些负面反应 但短信拦截有合法的用途 例如 自动电话号码验证 通过短信提供的服务 尽管通常这应该通过数据短信来完成 或者通过处理特殊格式的消息
  • Hexfloat机械手和精度

    如何使用输出hexfloat操纵器忽略任何精度ostream include
  • 如何在 Windows 中从 Google Code 下载/签出项目?

    当没有准备好的可用下载时 如何从 Google Code 下载整个项目的 ZIP 文件 这是我在结帐页面上看到的 命令行访问使用此命令可以匿名查看最新的项目源码 svn checkout http myproject googlecode
  • 向将数组作为字段之一的 Hive 表插入行时出现错误 10293

    我使用以下查询创建了一个配置单元表 create table arraytbl id string model string cost int colors array
  • ASP.NET 版本列表?

    感谢 stackoverflow 上的问答 我刚刚发现如何确定托管提供商服务器上安装的版本 现在我需要知道这个数字意味着什么 Using 在我的本地计算机上返回 2 0 50727 3053 有人能给我一份实际版本 1 1 1 2 等的列表
  • Maven多模块和Spring微服务的区别?

    我正在阅读下一个项目的 Spring 微服务 Tut 说 这种架构风格将主应用程序划分为一组称为微服务的子应用程序 一个大型应用程序划分为多个协作进程 所以我们已经有了一个框架 Maven 多模块 根据我的经验 我将项目分开了 尽管确实如此
  • 编译器无法推断返回类型

    Swift 无法推断函数的返回类型 该函数的参数是闭包 并且返回类型是从闭包的返回类型推导出来的 给定这个通用类 class Bar
  • ScikitLearn 的 MLPClasssifier 在输出层使用什么样的激活?

    我目前正在处理给定类标签 0 和 1 的分类任务 为此 我使用 ScikitLearnMLPClassifier为每个训练示例提供 0 或 1 的输出 但是 我找不到任何文档 说明 MLPClassifier 的输出层到底在做什么 哪个激活
  • IE10支持FormData()吗?

    我读了 here http msdn microsoft com en us library ie hh772723 v vs 85 aspx IE10 支持 FormData 但是当我在 IE10 JavaScript 控制台中输入以下内
  • 在服务器上运行我的 Rails 应用程序

    这是我第一次将 Rails 应用程序部署到服务器 它在本地运行得很好 但是当我尝试将其移动到服务器进行生产时 它没有显示 我得到的只是显示我的项目文件夹的图像 我需要做任何改变吗 以下是我已经完成的更改 数据库 yml gt 生产 改变了环
  • php imagecopyresized vs imagecopyresampled vs imagecopy 优点/缺点

    这些似乎都在做同样的事情 各自的优点 缺点是什么 imagecopyresized vs imagecopyresampled vs imagecopy 我正在调整用户提交的图像的大小 所以我有一个使用 newImage imagecrea
  • 我应该使用位字段来映射传入的串行数据吗?

    我们有通过串行 蓝牙 传入的数据 它映射到特定的结构 该结构的某些部分是子字节大小 因此 显而易见 的解决方案是将传入数据映射到位字段 我无法确定的是机器或编译器的位字节顺序是否会影响它 这很难测试 以及我是否应该完全放弃位字段 例如 我们
  • 如何通过变量动态调用 ember 组件?

    假设我的控制器上有一个小部件对象数组 每个小部件对象都有分配了组件类名称的成员变量 如何让我的模板调用该组件 widgets 0 widget componentClass blog post each widget in widgets
  • 更改 Azure Web 应用程序中的目标框架

    我想使用 Azure Web 应用程序将 ASP NET Core 2 1 网站发布到 Azure 来托管它 在 Azure 门户上创建 Azure Web App 时 其中一项设置是 运行时堆栈 在本例中 我将其设置为 NET Core
  • C# 中反转 1 位

    我有 1 位byte 始终处于最低顺序位置 我想反转 即给定 00000001 我想要得到 00000000 而对于 00000000 我想要 00000001 我是这样解决的 bit gt 0 0 1 我很好奇还能怎么做 怎么样 bit