找回密码
 立即注册
查看: 487|回复: 5

C语言中~与!的区别

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:278
  • 最近打卡:2025-07-03 06:37:07

62

主题

831

回帖

1479

积分

金牌会员

积分
1479
发表于 2024-5-10 15:57:01 | 显示全部楼层 |阅读模式
本帖最后由 zhange 于 2024-5-10 17:15 编辑

! 是逻辑非or否定
​凡是a的值不为0的,!a 就等于0;
​如果a的值为0,则 !a 的值为1
而~这个是 按位取反
比如 char a=2 ; 用二进制表示为00 00 00 10;
则 !a = 0
而 ~a = 11 11 11 01 (按位取反后的二进制结果,此结果为补码形式)
求其源码为 : 10 00 00 11 即为 -3
所以 ~a 的结果为 -3

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:486
  • 最近打卡:2025-07-05 00:01:29
已绑定手机

19

主题

3233

回帖

5369

积分

论坛元老

积分
5369
发表于 2024-5-10 16:29:17 来自手机 | 显示全部楼层
int在51单片机是16位吧及-32765-32765之间
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:278
  • 最近打卡:2025-07-03 06:37:07

62

主题

831

回帖

1479

积分

金牌会员

积分
1479
发表于 2024-5-10 17:14:13 | 显示全部楼层
so*** 发表于 2024-5-10 16:29
int在51单片机是16位吧及-32765-32765之间

是    学习  偶尔遇到这个问题   复制的别人的      int占4个字节
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:278
  • 最近打卡:2025-07-03 06:37:07

62

主题

831

回帖

1479

积分

金牌会员

积分
1479
发表于 2024-5-10 17:15:22 | 显示全部楼层
so*** 发表于 2024-5-10 16:29
int在51单片机是16位吧及-32765-32765之间

改成char  ???
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:397
  • 最近打卡:2025-07-03 08:59:57
已绑定手机

29

主题

306

回帖

690

积分

高级会员

积分
690
发表于 2024-5-10 17:23:56 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:476
  • 最近打卡:2025-07-03 00:07:50
已绑定手机

38

主题

2254

回帖

2818

积分

荣誉版主

积分
2818
发表于 2024-5-10 22:47:50 | 显示全部楼层
本帖最后由 晓飛飛 于 2024-5-10 22:49 编辑

a ^= 0xFF是什么效果,别忘了,这个也能取反
任何数与1进行异或运算,结果取反
睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-7-5 06:31 , Processed in 0.110237 second(s), 81 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表