MDK查看局部变量

对于MDK调试总结

1、局部变量在换成compiler6后,不能获取到值了,这是之前没注意地过的问题。也可能与编译器没有关系。

看到网友,说是优化等级高,实测是不管用的。

实测,只有在局部变量前加static后重新编译,就可以看到值了。

另外一种方式,也很传统,就是通过串口打印出来。

2、按位取反~(value)与0-value的区别:

其实0-(value),就是补码,按位取反+1。

补码的思想,把减法当成加法时并不是必须要引入符号位的。详见2019年10月21日《软考考点之数据的表示》

负数与负数相加的问题也解决了1111(-1)+1110(-2)=1101(-3)

为什么可以+1

然后我们再来看看为什么负数的补码的求法为什么是反码+1

因为负数的反码加上这个负数的绝对值正好等于1111,再加1,就是1000,也就是四位二进数的模

而负数的补码是它的绝对值的同余数,可以通过模减去负数的绝对值,得到他的补码。

所以,负数的补码就是它的反码+1

所以在用计算器,NOT取反是不等于   负一个数值的。

MDK查看局部变量