-127呢?
使用比较法:
我们实际操作一下:
我们改一下第一个例子:取掉unsigned
void main()
{
volatilechar a=170,b=90; //2个有符号整数,范围是0-127,-128 --- -1
volatilechar c;//170就是AA,90就是5A
c=a+b; //做有符号的加法运算,超过就发生溢出
}
170的二进制是1010 1010 (16进制就是AA)早就越出有符号整数范围了,计算机就把它当负数,是补码。讲大白话就是认为它是-86。(在8位二进制系统中,-86的补码表示是170),计算机就理解为负数1010 1010 (十进制-86)那么我们看看:
在机器中应该是10101010 (16进制就是AA)90就是5A,做了有符号的扩展 所以最后的结果是04(-86+90=4十进制)
MOVSWR4 , R7//这是符号扩展,把8位数扩展为16位。WR6也是扩展
再看最后得到的04
你以为是170+90=260,机器以为是-86+90=4
你说是谁错呢?
所以我们即需要梁工+冲哥那样的高级工程师(高级实验师),也需要何宾老师这样的高校教授
产学院厂一体化才行,所以我一个退休老头,内心还是很敬佩姚总的,肯出钱出力培养人,对国家产业有贡献,上面提到的这些都是牛人!{:qiang:}
小心这里有2个32位数的加法:
OxFFO12C 120009 LCALL C?FPADD (C:0x0009)
这个就好消耗时间的,小心处理,实际上要靠STC才行
没有硬件加速度(相当于8087协处理器),很难把CPU解放出来的!
只好请姚总解说一下:
简单来说,靠STC来开发硬件加速器.............
这是计算创新,很多人没有耐心学习STC32系列,总认为还是STC89C51.........