什么时候应该使用按位运算符?

2024-02-07

我阅读了以下 Stack Overflow 问题,并且了解了按位和逻辑之间的区别。

  • 参考 - 这个符号在 PHP 中意味着什么? https://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php

然而,他们都没有解释我何时应该使用按位或逻辑。

我什么时候应该使用按位运算符而不是逻辑运算符,反之亦然?

什么情况下需要一点点比较?

我不是在问差异,而是在问需要使用按位运算符的情况。


Bitwise 对于 PHP 中的东西就像其他东西一样有用。

一个可以同时打开多个状态的值怎么样?

<?php

// since we're setting constant values in base10 we must progressively double
// them since bitwise operations work in base2. you'll see why when we output
// these as binary values below.
const STATE_FOO = 1;
const STATE_BAR = 2;
const STATE_FEZ = 4;
const STATE_BAZ = 8;

// show base2 values of the above constants
echo sprintf("STATE_FOO's base2 value is %08d\n", decbin(STATE_FOO));
echo sprintf("STATE_BAR's base2 value is %08d\n", decbin(STATE_BAR));
echo sprintf("STATE_FEZ's base2 value is %08d\n", decbin(STATE_FEZ));
echo sprintf("STATE_BAZ's base2 value is %08d\n\n", decbin(STATE_BAZ));

// set state to FOO and FEZ
$state = STATE_FOO | STATE_FEZ;

echo sprintf("base10 value of \$state is %s\n", $state);
echo sprintf("base2 value of \$state is %08d\n", decbin($state));
echo sprintf("Does \$state include FOO state? %s\n", (bool)($state & STATE_FOO));
echo sprintf("Does \$state include BAR state? %s\n", (bool)($state & STATE_BAR));
echo sprintf("Does \$state include FEZ state? %s\n", (bool)($state & STATE_FEZ));
echo sprintf("Does \$state include BAZ state? %s\n", (bool)($state & STATE_BAZ));
echo sprintf("Is state equivalent to FOO and FEZ states? %s\n", ($state == (STATE_FOO | STATE_FEZ)));

Output:

STATE_FOO's base2 value is 00000001
STATE_BAR's base2 value is 00000010
STATE_FEZ's base2 value is 00000100
STATE_BAZ's base2 value is 00001000

base10 value of $state is 5
base2 value of $state is 00000101
Does $state include FOO state? 1
Does $state include BAR state?
Does $state include FEZ state? 1
Does $state include BAZ state?
Is state equivalent to FOO and FEZ states? 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么时候应该使用按位运算符? 的相关文章

  • 设置大型电子邮件通知系统有哪些方法?

    我的公司有一个用 PHP 构建的网站 我们使用内置的 PHP 电子邮件功能每天向订阅者发送数千封电子邮件 这是一个糟糕的主意 它堵塞了我们的服务器 并且需要几个小时才能完成整个批次 现在我已经研究过像 MailChimp 这样的群发邮件服务
  • 使用 file_get_content 发布数据

    我已经做了一些关于如何使用的研究file get content与帖子 我也读过this one https stackoverflow com questions 2445276 how to post data in php using
  • Readfile 从大文件中读取 0 字节?

    我正在尝试通过以下方式发送一个大文件readfile 但是 没有任何内容发送到浏览器 并且readfile 回报0 not false 我尝试发送的文件大小为 4GiB 并且可由 PHP 读取 我正在设置set time limit 0 以
  • 所有 PHP 相等比较都是对称的吗?

    Is a b总是等价于 b a 我认为在 JavaScript 中 由于强制转换 有一些奇怪的情况并非如此 I think ide https stackoverflow com questions 4752579 are all php
  • 更改 Woocommerce 中“我的帐户”页面上的标题

    我见过大量有关如何使用 WooCommerce 我的帐户仪表板重新排序 更改导航和页面的示例 但我一生都无法弄清楚如何更改每个部分的主要标题 我的帐户 订单 下载 地址等 我已经搜索过模板 但没有任何乐趣 我尝试使用条件 php 注释来回显
  • 在 PHP 中包含 PHP 文件

    我有一个网站 它运行 PHP if 语句来根据附加文件的类型 即 Jpg Txt MP4 显示内容 所以我显示 TXT 文件的代码是 if post attachment txt display attachment div class d
  • 防止 Propel 插入空字符串

    当未设置列时 如何防止 Propel ORM 插入空字符串 CREATE TABLE user uid INTEGER PRIMARY KEY AUTO INCREMENT email VARCHAR 255 NOT NULL UNIQUE
  • php源代码到PO文件生成器

    我必须将我的所有回显 打印字符串转换为PHP源代码代码文件到PO file 为了语言翻译 有批次吗对流器可用于相同的 我如何做到这一点 make gettext在您的服务器上运行 setup a 翻译适配器 例如带有 gettext 适配器
  • get url 重定向时 File_get_contents() 不起作用

    我正在使用的功能是 function http post url data data url http build query data data len strlen data url date default timezone set
  • PHP 无法打开流:是一个目录

    非常简单的 PHP 脚本 我在我亲自设置的 Ubuntu Web 服务器上的 EE 模板中运行 我知道这与权限有关 并且我已经将我尝试写入的目录的所有者更改为 Apache 用户 我得到的错误是 遇到 PHP 错误 严重性 警告 消息 fi
  • 未传递“client_reference_id”参数

    我使用 Stripe Checkout Stripe 版本 2016 07 06 我想通过参数 client reference id 恢复个性化数据 但在 JSON 中 当我有金额或电子邮件时 我找不到它 我是在测试环境中 你能帮我吗 先
  • 检查 PHP 中的字符串长度

    我有一个长度为 141 个字符的字符串 使用下面的代码我有一个if如果字符串大于或小于 140 则语句返回一条消息 libxml use internal errors TRUE dom new DOMDocument dom gt loa
  • 对 SimpleXML 数据进行排序和分组

    我正在对 XML 文件中的出版物数据进行排序和分组 我目前使用的方法效果很好大部分情况下 尽管我觉得有一种更有效的方法来完成我想要完成的任务 以下是目标节点的示例
  • 在 WooCommerce 中添加到购物车之前清空购物车

    我正在使用 WP 作业管理器和 Woo Subscriptions Now 最初 我选择了一个套餐 Woo Subscription 然后我添加了所有细节 但没有提交 回到网站 所以要再次购买 我需要选择一个套餐 于是我选择了套餐并填写了详
  • Facebook 应用程序无法获取会话

    我正在 Heroku 上为 Facebook 开发一个非常基本的 PHP 应用程序 它显示非常基本的用户信息 如姓名 个人资料图片 但该应用程序在 getToken 方法中停止 我在登录我的个人资料后尝试了该应用程序 但仍然出现相同的消息
  • 在 Yii 的标准中如何获得计数 (*)

    我正在尝试构建一个具有以下内容的查询group by属性 我正在尝试得到id和count它一直告诉我count is invalid列名 我怎样才能得到count来自group by询问 工作有别名 伊伊 1 1 11 其他不及格 crit
  • PHP print_r() 中 _r 的含义是什么?

    我见过这个答案 https stackoverflow com questions 13103410 what does r suffix mean就这样 但我不确定它对于 PHP 是否相同 如果是 可重入的含义是什么 From PHP n
  • 我可以在 PHP 会话变量中安全地存储用户名和密码吗?

    我想在 REST api 之上制作一个轻量级的 web 应用程序 用户只需进行一次身份验证 从那时起 所有针对 web api 的请求都希望通过以某种方式保持用户名和密码有效来完成 我已经做了一个工作原型我在哪里将用户名和密码存储在会话变量
  • 如何清除 APC 缓存而不使 Apache 崩溃?

    如果 APC 存储大量条目 清除它们会导致 httpd 崩溃 如果 apc clear cache user 花费的时间超过 phps max execution time 调用 apc clear cache 的脚本 将在之前被 php
  • 使用 PHP 将 latin1_swedish_ci 转换为 utf8

    我有一个数据库 里面充满了类似的值 Dhaka 应该是 Dhaka 因为我在创建数据库时没有指定排序规则 现在我想修复它 我无法从最初获取数据的地方再次获取数据 所以我在想是否可以在 php 脚本中获取数据并将其转换为正确的字符 我已将数据

随机推荐

  • 如何拥有 Active Admin 嵌套和非嵌套资源视图?

    一个用户有很多交易 我当前已将活动管理员设置为使用 admin transactions rb 中的 own to user 将事务嵌套在用户下以进行基本 CRUD 然而 我还需要一个事务的顶级视图 以显示跨用户的事务记录的子集 我怎样才能
  • 谷歌地图信息框 - maxWidth

    我面临谷歌地图信息框的奇怪行为 我将 maxWidth 调整为 0 以便让信息框大小根据内容进行调整 但我总是得到 236px 的信息框 var infobox new InfoBox maxWidth 0 pixelOffset new
  • 了解内存性能计数器

    更新 2010 年 9 月 30 日 由于我对此主题及相关主题进行了很多研究 因此我将写下我从此处答案中提供的经验和建议中收集到的任何提示 1 使用内存分析器 首先尝试使用 CLR Profiler 并找到消耗最大内存的例程并对其进行微调
  • 如何通过 xs:unique 使我的枚举变得唯一

    谁能指出为什么我的 XSD 中的独特元素没有强制唯一性 这应该会引发错误 因为最后一个ScreenResult元素不包含唯一值Type属性 我还应该指出 我确实在强迫其中一个之后Type within ScreenResults Scree
  • 类型错误:“未定义”不是函数(评估“$(文档)”)

    我正在使用 WordPress 网站 我将此脚本包含在标题中 当脚本加载时 我收到此错误 类型错误 未定义 不是函数 评估 文档 我不知道是什么原因造成的 甚至不知道它意味着什么 在萤火虫中 我得到这个 不是函数 WordPress 在中使
  • 如何去除所有换行符以生成正确的 CSV?

    我在正常工作的网站上有一个文本区域提交到我的数据库 但是当我从数据库生成 CSV 通过 PHP 时 所有换行符都会弄乱生成的 CSV 任何 CSV 阅读器都会将输入中的换行符解释为新行 我尝试过以下方法 将字段封装在引号中 This fie
  • oauth 中不支持的响应类型[重复]

    这个问题在这里已经有答案了 您好 我正在 Angular 2 中开发 Web 应用程序 我在 webapi 中有 oauth 身份验证 我在前端使用 Angular 2 登录时我调用下面的代码 private login this oaut
  • << 具有多个参数的运算符[重复]

    这个问题在这里已经有答案了 我只是想知道我们是否可以为运算符 举个例子会更明确 anyType operator lt lt arg p1 arg p2 DoSomethingWith p1 DoSomethingWith p2 retur
  • OpenCV Python 错误断言失败(scn == 3 || scn == 4)

    我刚刚开始玩OpenCV在 Python 中 我遇到了断言错误 我从a复制了以下代码tutorial http docs opencv org trunk doc py tutorials py gui py video display p
  • MySQL 中“FOR XML AUTO”的等效项是什么? (用于具有代表行的 XML 字符串)

    在 SQL Server 中 我经常使用 FOR XML AUTO 它允许 SELECT id FROM car FOR XML AUTO 返回 12 MySQL 有没有办法做到这一点 我想要的是能够将此 XML 存储在另一个表中 这样我就
  • 将 Z 轴与向量对齐的最简单方法是什么?

    给定一个点 如 0 0 0 和一个向量 如 x y z 对齐以 0 0 0 为中心的负 Z 轴以指向该向量的方向的最简单方法是什么 使用 OpenGL 的示例将受到欢迎 但不是必需的 有很多不同的方法可以旋转坐标系以指向给定方向 它们都会使
  • 什么时候应该在 C++ 中使用引用?

    我已经编写 C 有一段时间了 我开始怀疑这个规则尽可能使用参考文献应该到处应用 Unlike 这个相关的SO帖子 https stackoverflow com questions 7058339 c when to use referen
  • -[NSConcreteMutableData base64EncodedStringWithOptions:]:无法识别的选择器发送到实例 0x776e920'

    我的应用程序不断崩溃并显示以下消息 由于未捕获的异常 NSInvalidArgumentException 而终止应用程序 原因 NSConcreteMutableData base64EncodedStringWithOptions 无法
  • OO PHP 受保护的属性在 foreach 循环中不可用?

    我有一个验证类 我想用它来检查应用程序中的所有值是否在允许的约束范围内 我将一个对象从另一个类 在本例中为 User 传递给验证类中的静态函数 function validate errors Validation validate thi
  • 参数的存在数据库基数

    我是exist db 和XQuery 的新手 在exist db中 我有这个站点地图 目录 registranten 包含目录 data 带有xml文件 和两个文件 regBasic xql 和 regSearch xql 我正在尝试使用脚
  • 如何使用 Silverlight 和 MVVM 设计复合视图和视图模型?

    我想在我的 Silverlight MVVM 应用程序中创建一个 向导 该向导应包含多个步骤 您可以使用 下一个 和 上一个 在这些步骤之间导航 我面临的问题是视图和视图模型之间的关系 我希望向导本身有一个视图和视图模型 我的直觉告诉我 向
  • 由于 WatchKit,Xcode 11 Beta 无法构建?

    在 Xcode 10 上工作 现在在测试版中我无法构建我不断收到此错误 为 iOS 模拟器构建时 WatchKit 不可用 考虑使用 if os iOS 有条件地导入此框架 对于 WatchKit 扩展中的一个 swift 文件 我也遇到了
  • 如何使用 Promise 异步读取多个文件,然后继续

    我对承诺和使用不熟悉rsvp https github com tildeio rsvp js执行 我想异步读取文件列表 然后仅在读取所有文件后才继续执行另一个任务 我已经了解了读取一个文件并链接到下一个任务的基本结构 var loadFi
  • YouTube iframe API:无法使其响应

    我正在尝试通过 iFrame API 实现 Youtube 视频 我需要捕捉一些事件 因此单独嵌入播放器不是一个选择 正如文档中所解释的 一切正常 我这样称呼视频 var tag document createElement script
  • 什么时候应该使用按位运算符?

    我阅读了以下 Stack Overflow 问题 并且了解了按位和逻辑之间的区别 参考 这个符号在 PHP 中意味着什么 https stackoverflow com questions 3737139 reference what do