你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

求助两个C语言的问题

[复制链接]
lvpeng-1619958 提问时间:2018-7-24 17:12 /
本帖最后由 lvpeng-1619958 于 2018-7-25 09:47 编辑

1:
uint8_t a = 1,c;
int8_t b = -1;
c= a/b,
结果是c = ?是多少啊?
2:
uint8_t a = 0xff;
uint8_t b = 0;
if((~a) == b)
{
  return 1;
}
else
{
  return 0
}
在32bit系统当中,到底是return 1还是return 0?


收藏 评论10 发布时间:2018-7-24 17:12

举报

10个回答
zwjchinayids 回答时间:2018-7-24 17:55:04
第一题  报错  大写C未定义
第二题 异或后 是FF 不等于0   所以返回0

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

toofree 回答时间:2018-7-24 17:57:06
本帖最后由 toofree 于 2018-7-24 17:59 编辑

跑个程序就可以了呀,在这纠结?
可能不同的编译器,会有不同的结果吧,我这是GCC
傲游截图20180724175651.png


评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

stm1024 回答时间:2018-7-24 18:17:28
toofree 发表于 2018-7-24 17:57
跑个程序就可以了呀,在这纠结?
可能不同的编译器,会有不同的结果吧,我这是GCC

看样子,你用的是CodeBlocks?
stm1024 回答时间:2018-7-24 18:34:19
本帖最后由 stm1024 于 2018-7-24 18:39 编辑

第二个问题,应该是0。C语言中,所有的比较运算符,操作数都是使用的int型(或指针类型),其他类型会有隐含类型转换的操作
  1. if((~a)==(-256))
  2.         printf("Equal\n");
  3.     else
  4.         printf("Not Equal\n");

  5.     uint32_t c=4294967040;
  6.     if((~a)==c)
  7.         printf("Equal\n");
  8.     else
  9.         printf("Not Equal\n");
复制代码
上面这两段代码,都会显示Equal,因为最终转化为32位int的时候,都是0xffffff00。

评分

参与人数 1蝴蝶豆 +4 收起 理由
zero99 + 4

查看全部评分

wenyangzeng 回答时间:2018-7-24 19:33:15
本帖最后由 wenyangzeng 于 2018-7-24 21:17 编辑

楼主写代码应该严谨一点:C不等于c呀!
退一步,改c为C,

则:
uint8_t a = 1,C;

这里的a和C是无符号,而b是负数:

C= a/b,商是负数,uint8_t C肯定溢出!!





评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

toofree 回答时间:2018-7-24 22:10:37
stm1024 发表于 2018-7-24 18:17
看样子,你用的是CodeBlocks?

是滴,CodeBlocks超级方便
select326 回答时间:2018-7-25 00:06:30
toofree 发表于 2018-7-24 22:10
是滴,CodeBlocks超级方便

用这个来构建STM32的开发环境吗?
toofree 回答时间:2018-7-25 01:05:03
本帖最后由 toofree 于 2018-7-25 01:07 编辑
select326 发表于 2018-7-25 00:06
用这个来构建STM32的开发环境吗?

不是用来开发STM32,单纯验证C
因为楼主的问题是C
TC、WinTC、VC6.0、CodeBlocks,基本都是用来写个小程序,验证点算法,转换点文件。
select326 回答时间:2018-7-25 09:29:50
toofree 发表于 2018-7-25 01:05
不是用来开发STM32,单纯验证C
因为楼主的问题是C
TC、WinTC、VC6.0、CodeBlocks,基本都是用来写个小程序 ...

求跨平台,STM32开发环境构建方案  官方的SW4STM32 实在不好用呀
12下一页

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版