我正在打包一些二进制数据作为缩写,但希望具有4x值(0-F)。并且想要这样做而没有一堆switch()情况读取十六进制的string.split
有人对此有一个聪明,优雅的解决方案,还是我应该长期使用它?
例如; 1C4A = (1, 12, 4, 10)
移入移出
var a = 1;
var b = 12;
var c = 4;
var d = 10;
// in
var packed = (short) ((a << 12) | (b << 8) | (c << 4) | d);
// out
a = (packed >> 12) & 0xf;
b = (packed >> 8) & 0xf;
c = (packed >> 4) & 0xf;
d = packed & 0xF;
Console.WriteLine(a);
Console.WriteLine(b);
Console.WriteLine(c);
Console.WriteLine(d);
输出量
1
12
4
10
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句