话不多说,直接上代码
int num = 2000;
Console.WriteLine(num.ToString("X").PadLeft(4,'0'));
num = num ^ 0xFFFF;
Console.WriteLine(num.ToString("X").PadLeft(4, '0'));
输出结果为:
07D0 F82F
在该过程中,还是用过另一个方法
int num = 2000;
Console.WriteLine(num.ToString("X").PadLeft(4,'0'));
num = ~num;
Console.WriteLine(num.ToString("X").PadLeft(4, '0'));
输出结果为:
07D0 FFFFF82F
出现该问题是因为int类型为32位,十进制数2000转为十六进制后为7D0,转化为二进制为0111 1101 0000,二进制前面的0被自动隐藏,而取反时会将其也置为1,所以为32位二进制。
该方法主要是通过异或运算,根据实际情况
例如:1字节为:0xF
又或者上方的4字节为:0xFFFF



