C#将int转换为2个字节的数组

MSH*_*MSH 2 c# arrays int

如果我的问题不够明确,我会提前道歉,我没有很多c#的经验,我遇到了一个奇怪的问题.我试图将一个int转换为两个字节的数组(例如:取2210并获取:0x08,0xA2),但我得到的只是:0x00,0xA2,我无法弄清楚为什么.非常感谢任何建议.(我已经尝试阅读有关此事的其他问题,但找不到有用的答案)

我的代码:

        profile_number = GetProfileName(); // it gets the int 
        profile_num[0] = (byte) ((profile_number & 0xFF00));
        profile_num[1] = (byte) ((profile_number & 0x00FF));
        profile_checksum = CalcProfileChecksum();
Run Code Online (Sandbox Code Playgroud)

//注意:我指的是一个2字节的数组,所以关于4字节数组的问题的答案对我没有帮助.

Hen*_*man 6

你需要改变第一个字节:

 //profile_num[0] = (byte) ((profile_number & 0xFF00));
 profile_num[0] = (byte) ((profile_number & 0xFF00) >> 8);
 profile_num[1] = (byte) ((profile_number & 0x00FF));
Run Code Online (Sandbox Code Playgroud)