首先,你这程序和你的意思貌似对不上哦。chainLinkcode 如果是个2进制或者16进制的悉漏散,你左移右移,还是有意义的,但问题是10进制。
如果我是你
chainlinkcode = chainlinkcode /1000;
linkcode = chainlinkcode %1000;
如果是为着节省空间,定义成unsigned short, 那应该没必要呢,睁氏搜首其实都是4字节的int,处理器运行起来反而快。
请不要在这里使带察用>>,因为你的数是十进制数,>>是二进制操蠢配茄作
从换算上来说已卖枯经错误了
int chainlinkcode = 315892;
unsigned short chaincode = chainlinkcode/1000;
unsigned short linkcode = chainlinkcode-chaincode*1000;