一个C语言中的 位运算有关问题 (求高手解答)

2024-11-29 17:24:02
推荐回答(2个)
回答1:

首先,你这程序和你的意思貌似对不上哦。chainLinkcode 如果是个2进制或者16进制的悉漏散,你左移右移,还是有意义的,但问题是10进制。

如果我是你
chainlinkcode = chainlinkcode /1000;

linkcode = chainlinkcode %1000;
如果是为着节省空间,定义成unsigned short, 那应该没必要呢,睁氏搜首其实都是4字节的int,处理器运行起来反而快。

回答2:

请不要在这里使带察用>>,因为你的数是十进制数,>>是二进制操蠢配茄作
从换算上来说已卖枯经错误了

int chainlinkcode = 315892;
unsigned short chaincode = chainlinkcode/1000;
unsigned short linkcode = chainlinkcode-chaincode*1000;