单片机玩了很长时间,你可能真不知道247和-9在单片机区别

2020-01-30 13:53发布

单片机玩了很长时间,你可能真不知道247和-9在单片机区别  unsigned char 247    char -9   他们的存储值都为0xF7 仿真编译确实如此  
F7+F7=1EE           247 (F7) +247 (F7) =494(1EE) -9 (F7) +247 (F7) =238(EE)    这个真是巧合? 自然界真神奇
   下面的编译汇编一致 不知道单片机是怎么处理这个结果的。
  1. void main()
  2.         {
  3.        idata unsigned char a=247;
  4.       idata unsigned char b=247;
  5.       idata unsigned int c=0;

  6.        c=a+b;
  7. }
复制代码
  1. void main()
  2. {
  3. idata unsigned char a=247;
  4. idata  char b=-9;
  5. idata unsigned int c=0;

  6. c=a+b;
  7. }
复制代码 2.png (27.87 KB, 下载次数: 0) 下载附件 2013-4-4 23:51 上传
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
learner123
1楼-- · 2020-01-30 17:34
 精彩回答 2  元偷偷看……
qwe2231695
2楼-- · 2020-01-30 22:52
哎,谁不知道啊,数据类型,补码都是基本知识啊。
l1234564555
3楼-- · 2020-01-31 00:43
learner123 发表于 2013-4-5 00:02
计算机基础课没学好,最基本的数制码制知识,翻开书看看什么是补码。
如果基础不过关,很难有提高的 ...

这个知道,我问任何一个学计算机的,他们都不知道底层(单片机 计算机)如果区分F7到底是247 还是-9
l1234564555
4楼-- · 2020-01-31 06:40
qwe2231695 发表于 2013-4-5 01:14
哎,谁不知道啊,数据类型,补码都是基本知识啊。

这个知道,我问任何一个学计算机的,他们都不知道底层(单片机 计算机)如果区分F7到底是247 还是-9   补码谁都会计算,做题目,虽然不用管,编译器会解决,但是要明白汇编如何处理数据类型的。要迟到 unsigned char char 都占几个字节?
hhxb
5楼-- · 2020-01-31 08:51
区分是因为这个代码是你写的,所以你知道它代表什么;
计算机是不区分的
hhxb
6楼-- · 2020-01-31 09:25
 精彩回答 2  元偷偷看……

一周热门 更多>