c++ - 如何将按位运算符与 unsigned char 数据类型一起使用?
问题描述
考虑以下代码:
uint8_t a = 0xFF;
uint64_t b = a << 8u | 0xFFu;
我在第 2 行第 14 列收到以下消息。
Clang-Tidy:将带符号整数操作数与二进制位运算符一起使用
这不是一个错误,我认为这只是一个警告。
变量a
是一个uint8_t
与 相同的unsigned char
。如果变量a
是,也会发生同样的事情uint16_t
。但是,如果变量a
是uint32_t
,那就没问题了。这是正确的还是我错过了什么?为什么按位运算符只能与uint32_t
数据类型一起使用?
在这种情况下如何使用按位运算符?我应该使用static_cast<uint32_t>(a)
吗?
解决方案
推荐阅读
- r - 来自 R 代码块的动态 RMarkdown 标题
- charts - 在 Chart.js 中的图表内显示标签的总计(或简单地显示一个字符串)
- c++ - std::variant 的 std::vector 的内存布局如何?
- c# - 将视图变量绑定到视图内声明的 UserControl ViewModel
- java - maven有效的pom显示未定义的插件
- android - 带有 ViewPager 和 TabLayout 的 Android Jetpack 导航
- sql-server - SQL Server 存储过程复杂性
- android - 是否可以无头打开 Android 模拟器并让它自动运行 apk?
- reactjs - React 虚拟化无限滚动渲染聚合数据
- c# - 如何实现 MailSystem.NET 组件作为参考?