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取反是不等于 负一个数值的。