我在尝试将来自模块输入的16位数存储到我的逻辑变量之一时遇到问题。当我在测试台中将所有位设置为高时,我得到一个值:0000000000000001。希望你能帮忙! PS:对不起,不知道如何在这里插入代码....
我的代码如下所示:
答案 0 :(得分:1)
我认为你的问题可能在这一行:
regy = (!regy)+1;
regy
是一个16位值。在多位值上使用否定运算符(!)
等效于(value != 0)
。因此,对于除{0}之外的任何regy
值,都会将regy
设置为1。
如果您尝试反转所有位并添加1,则需要使用~
运算符。
示例:
regy = (~regy)+1;