首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BinaryReader对byte[]+移位

BinaryReader对byte[]+移位
EN

Stack Overflow用户
提问于 2018-11-15 18:56:55
回答 1查看 66关注 0票数 0

我一定是误解了BinaryReader在做什么。为什么这些输出不同?

代码语言:javascript
复制
{
    var data = File.ReadAllBytes(testFile);
    var pos = 0;
    var read8 = new Func<uint>(() => data[pos++]);
    var read32 = new Func<uint>(() => (read8() << 24) | (read8() << 16) | (read8() << 8) | read8());

    Console.WriteLine(read32());
}

using (var reader = new BinaryReader(File.Open(testFile, FileMode.Open)))
{
    Console.WriteLine(reader.ReadUInt32());
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-15 19:03:24

Endiannes

使用:

代码语言:javascript
复制
var read32 = new Func<uint>(() => (read8() | (read8() << 8) | (read8() << 16) | read8() << 24));

另外,请不要编写具有这种副作用的代码。

你可以在这里逃脱,因为评估顺序得到保证。,但还是请不要。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53326198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档