左移 255 位(作为一个字节)

2024-04-14

谁能解释为什么以下内容无法编译?

byte b = 255 << 1

错误:

常量值“510”无法转换为“字节”

我期待二进制的以下内容:

1111 1110

类型转换难倒了我。


C# 中的数字文字是int, not byte(编译器将评估位移位,因此仅保留 510)。因此,您尝试将值分配给byte这不合适。您可以使用 255 进行掩码:

byte b = (255 << 1) & 0xFF

再次将结果减少到 8 位。与 Java 不同,C# 不允许溢出未被检测到。基本上,当尝试将 510 分配给一个字节时,您有两个明智的选择:要么限制在最大值,然后您将得到 255,要么丢弃不适合的位,在这种情况下您将得到 254。

您还可以使用unchecked, as 拉塞夫克提到 https://stackoverflow.com/questions/737781/left-bit-shifting-255-as-a-byte/737810#737810:

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

左移 255 位(作为一个字节) 的相关文章

随机推荐

  • 如何从 QLThumbnailGenerator 正确返回图像? (斯威夫特用户界面)

    我的问题如何从 QLThumbnailGenerator shared generateRepresentations for 返回 cgImage 我的挂断 尝试 下面的代码 我的尝试有一个函数 第 13 行 它返回 ListView 条
  • Vb.net 如何从数组中删除重复项?

    Dim ItemList As New ArrayList For i 0 To dgExtract Items Count 1 gRow dgExtract Items i chk gRow FindControl chkSelect I
  • 有条件地在 Terraform 中创建单个模块

    我一直在尝试有条件地使用根模块中的模块 以便在某些环境下不会创建该模块 许多人声称通过设置count在模块中使用条件将其设置为 0 或 1 就可以了 module conditionally used module source modul
  • 在相对较大的应用程序中应该如何使用实体管理器管理数据库事务?

    我使用 MYSQL 数据库和 Swing 应用程序框架以及 javax persistence 开发了一个相当大的 CRUD 应用程序 我的问题是 在给定 javax persistence Entitymanager 的情况下 我应该如何
  • 获取生成的 ProductCode 作为 Wix 中的变量

    在我们的产品中我们使用Product Id 在 Wix 中告诉它为每个新版本生成新的产品代码 现在 我们需要在安装期间将正在安装的 MSI 的产品代码记录到我们的注册表项之一中 我们可以通过循环遍历 卸载 注册表项中的条目来查找产品名称和版
  • Bot Framework v4 中的等待方法

    在 Bot Framework 的版本 3 中 我可以调用卡片并等待用户的响应 context Call new MyHeroCardOptions MyResumeAfter Where 我的英雄卡选项是 HeroCard 类型的卡并且我
  • 如何将此 JSON 对象存储为 cookie,然后在普通 javascript 中读取它?

    我实际上似乎可以把它写成像这样的cookie 4c3dd477c441e17957000002 4c2ac3cc68fe54616e00002e 4c3dd477c441e17957000003 4c3dd477c441e179570000
  • 使用 Javascript 更改背景图像

    我一直在尝试在我创建的网页之一上创建幻灯片 我创建了一个具有唯一类名的 div 其目标是使用 JavaScript 更改背景图像 到目前为止 我已经能够执行以下操作 使用 querySelector 捕获我想要更改背景图像的 div 尝试使
  • Boost 记录器附加到文件

    我已经初始化了记录到文件的接收器 logging add file log keywords file name sample N log lt file name pattern gt keywords rotation size 10
  • 使模板参数成为朋友?

    Example template
  • Android Studio 支持库 v7

    我正在尝试使用支持操作栏 我已遵循有关如何在 Android Studio v 0 3 0 中包含支持库的所有说明 我的 build gradle 的依赖项如下所示 dependencies compile fileTree dir lib
  • php exec() 返回空值

    目前我的目标是使用查看 PHP exec 的输出 但得到一个空值 我正在使用 firephp firebug 扩展 日志记录 但无法弄清楚为什么它是空的 完整代码在这里 https github com MattMcFarland ninj
  • Stream.findAny是短路操作吗?

    考虑这段代码 Object found collection stream filter s gt myPredicate1 s filter s gt myPredicate2 s findAny 它会处理整个流并调用两者吗myPredi
  • 字符串中的街道地址搜索 - Python 或 Ruby

    嘿 我想知道如何在 Python Ruby 中的字符串中找到街道地址 也许通过正则表达式 另外 它将采用以下格式 美国 420 Fanboy Lane 库比蒂诺 CA Thanks 也许你想看看pypostal https github c
  • 找到内接于较大多边形的最大面积多边形

    我想找到一个多边形的旋转和位置 以最大化它可以在更大的多边形内拟合的约束下放大的大小 目前的想法是使用scipy 优化例程 http docs scipy org doc scipy reference optimize html用于优化位
  • React.js 中组件键的重要性

    我只是想知道在阅读文章时https coderwall com p jdybeq the importance of component keys in react js https coderwall com p jdybeq the i
  • 如何使用jQuery更新数据库而不刷新页面?

    我该如何发送这个display false 使用 jQuery 向服务器发送函数 以便在不刷新页面的情况下更新数据库 def display false if display false main id self request get m
  • 无法在 Mavericks/Yosemite 中签署 kext?

    目标 签署我自己的软件包和我自己的内核扩展 上下文中的 我自己的 意味着 我编写的 或者我在其他地方选择的 从它们的源代码中重新编译的 并且想要安装在我的机器上 问题 小牛队不接受我的签名Code Signing Failure code
  • Google 电子表格作为网络应用程序的数据库

    有谁知道我是否可以使用 Google 电子表格来存储自定义 HTML 表单的结果 我知道 Google 电子表格允许在 Google 域本身上创建表单 但是是否可以使用 Google 电子表格作为其他网络应用程序的数据库 谷歌电子表格 AP
  • 左移 255 位(作为一个字节)

    谁能解释为什么以下内容无法编译 byte b 255 lt lt 1 错误 常量值 510 无法转换为 字节 我期待二进制的以下内容 1111 1110 类型转换难倒了我 C 中的数字文字是int not byte 编译器将评估位移位 因此