C# 移位运算

今天测试程序发现一个比较有意思的事,如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
static void Main(string[] args)
{
    List<byte> ts = new List<byte>() { 0x00, 0x01};
 
    int aa = (int)ts[0] << 8 + (int)ts[1];
    int bb = ((int)ts[0] << 8) + (int)ts[1];
    int cc = (int)ts[0] * 256 + (int)ts[1];
 
    Console.WriteLine("aa: " + aa.ToString("x2"));
    Console.WriteLine("bb: " + bb.ToString("x2"));
    Console.WriteLine("cc: " + cc.ToString("x2"));
 
    Console.ReadKey();
}

输出结果:

 

 

只能说对这种高级语言,少用低级语言操作特性😂

 

修正如上说法,参考评论区(加法优先级大于位移优先级)!
多谢指正学到了。

 

 

 

posted @   小小林林  阅读(209)  评论(2编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示