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 位 的相关文章

随机推荐

  • 什么是 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