Bud*_*Joe 5 c# byte bit-manipulation bytearray
编写此方法的最具可读性(和惯用语)是什么?
private bool BytesAreValid(byte[] bytes) {
var t = (bytes[0] | bytes[1] | bytes[2]);
return t != 0;
}
Run Code Online (Sandbox Code Playgroud)
我需要一个函数来测试一个不是以它开头的文件的前三个字节00 00 00.
没有做太多的字节操作.上面的代码对我来说似乎不正确,因为t推断了类型Int32.
Jon*_*eet 14
t类型推断是一个Int32
是的,因为|运算符(像大多数运算符一样)没有定义byte- 字节被提升为int值.(有关详细信息,请参阅C#4规范的第7.11.1节.)
但鉴于你只想将它与0进行比较,无论如何都没关系.
就个人而言,我只是把它写成:
return bytes[0] != 0 && bytes[1] != 0 && bytes[2] != 0;
Run Code Online (Sandbox Code Playgroud)
甚至:
return (bytes[0] != 0) && (bytes[1] != 0) && (bytes[2] != 0);
Run Code Online (Sandbox Code Playgroud)
这些都对我来说更清楚.
| 归档时间: |
|
| 查看次数: |
6418 次 |
| 最近记录: |