单片机玩了很长时间,你可能真不知道247和-9在单片机区别 unsigned char 247 char -9 他们的存储值都为0xF7 仿真编译确实如此
F7+F7=1EE 247 (F7) +247 (F7) =494(1EE) -9 (F7) +247 (F7) =238(EE) 这个真是巧合? 自然界真神奇
下面的编译汇编一致 不知道单片机是怎么处理这个结果的。
- void main()
- {
- idata unsigned char a=247;
- idata unsigned char b=247;
- idata unsigned int c=0;
- c=a+b;
- }
复制代码- void main()
- {
- idata unsigned char a=247;
- idata char b=-9;
- idata unsigned int c=0;
- c=a+b;
- }
复制代码
2.png (27.87 KB, 下载次数: 0)
下载附件
2013-4-4 23:51 上传
这个知道,我问任何一个学计算机的,他们都不知道底层(单片机 计算机)如果区分F7到底是247 还是-9
这个知道,我问任何一个学计算机的,他们都不知道底层(单片机 计算机)如果区分F7到底是247 还是-9 补码谁都会计算,做题目,虽然不用管,编译器会解决,但是要明白汇编如何处理数据类型的。要迟到 unsigned char char 都占几个字节?
计算机是不区分的
一周热门 更多>