• ! 是逻辑非or否定

​ 凡是a的值不为0的,!a 就等于0;

​ 如果a的值为0,则 !a 的值为1

  • 而~这个是 按位取反

    比如 int a=2 ; 用二进制表示为00 00 00 10;

    则 !a = 0

    而 ~a = 11 11 11 01 (按位取反后的二进制结果,此结果为补码形式)

    求其源码为 : 10 00 00 11 即为 -3

    所以 ~a 的结果为 -3

因此,在单片机程序开发时,想要令信号相反,应使用~

C语言中~与!的区别的更多相关文章

  1. 浅谈c语言和c++中struct的区别

    今天做二叉树的时候,发现利用结构体有点乱,不知道怎么回事,我之前知道c语言中声明一个结构体变量时需要通过 struct 结构体名 变量名,而在c++中,可以不要struct,由于可以利用typedef ...

  2. C语言中 *.c和*.h文件的区别!

    C语言中 *.c和*.h文件的区别!  http://blog.163.com/jiaoruijun07@126/blog/static/68943278201042064246409/        ...

  3. C语言中堆和栈的区别

    原文:http://blog.csdn.net/tigerjibo/article/details/7423728 C语言中堆和栈的区别 一.前言: C语言程序经过编译连接后形成编译.连接后形成的二进 ...

  4. c语言exit和return区别,在fork和vfork中使用

    转自c语言exit和return区别,在fork和vfork中使用 exit函数在头文件stdlib.h中. 简述: exit(0):正常运行程序并退出程序: exit(1):非正常运行导致退出程序: ...

  5. c 语言中宏定义和定义全局变量的区别

    宏定义和定义全局变量的区别: 1 作用时间不同. 宏定义在编译期间即会使用并替换,而全局变量要到运行时才可以. 2 本质类型不同. 宏定义的只是一段字符,在编译的时候被替换到引用的位置.在运行中是没有 ...

  6. js课程 3-10 js中字符串函数数组函数和其它语言中对应函数的区别和联系是什么

    js课程 3-10  js中字符串函数数组函数和其它语言中对应函数的区别和联系是什么 一.总结 一句话总结:js中是对象点方法的形式,这些方法都是对象的方法,而在php.java中却不是这样. 1.j ...

  7. 【435】NULL '\0' 0 等在 C 语言中的区别

    参考:C/C++语言中NULL.'\0’和0的区别 参考:空字符串.'\0'.0与NULL的区别以及数组清零的特点分析 在 C语言 中没有 空字符 这个东西 '',不过有 空字符串 "&qu ...

  8. C语言中整形数组、字符数组、字符串的区别

    一. 第一 整型数组的存放,数组最后是不加'\0'的,字符串会自动加上,因此存放字符的时候数组的大小要比实际字符的多一个 第二 整型数组 每一个单元是4个字节的,字符串是一个一个字符存放的,每个字符占 ...

  9. Go语言中的有缓冲channel和无缓冲channel区别

    Go语言中的有缓冲channel和无缓冲channel区别 结论 ch1:=make(chan int)// 无缓冲 ch2:=make(chan int,1)// 有缓冲 无缓冲: 当向ch1中存值 ...

  10. c语言中(*p)[n]和*p[n]的区别

    写于2016年12月5日. c语言中(*p)[n]表示的数组指针,在该表达式中按照运算的优先级,首先计算()的中*p,在和[n]计算.含义为指向含有n个元素的一维数组. *p[n]表示的是指针数组,在 ...

随机推荐

  1. nginx+vite 项目打包及部署

    项目打包及部署到服务器二级路由 例如:我希望将打包的项目部署到 http://localhost:8088/web/ 上 一. 项目配置及打包 项目部署到服务器二级路由需要配置基础路径base,即需要 ...

  2. [ARC140D] One to One

    个人思路: 一棵树也只有一个 \(a=-1\) 的点,所以可以把它看做一个点,但是要记录点的大小 \(sz_i\),即为这棵树的大小.如果本来就是一个点,那么大小为 \(1\). 状态:\(dp_{i ...

  3. vue 切换json语言包

    1.在asstes文件夹新建 2.在main.js读取本地json语言包 3.在vue页面t这样引用

  4. [BOM]打包代码前,快速去除前端日志

    一般开发时使用console.log() 方法.于是可以在js文件的最开头加上: console.log = function(){}

  5. MySQL-explain详解说明

    1.Explain介绍 在日常工作中, 我们会有时会开慢查询去记录一些执行时间比较久的SQL语句, 找出这些SQL语句后我们常常会用explain这个命令来查看一个这些SQL语句的执行计划, 查看该S ...

  6. 用Python中的hashlib实现md5和sha加密

    文章目录 一.用 pandas 读取 Excel 数据 二.加密库 hashlib 三. pandas中的 map() 方法 四.数据加密工具 本文分享知识: pandas读取Excel数据 read ...

  7. c++基础代码练习考试必备(冒泡,求3*3矩阵对角线元素的积,求素数,密码验证)

    1.求1-100之间的素数 int j; int i; for (i=2; i <= 100; i++) { for (j=2; j <= i; j++) { if (i%j == 0) ...

  8. sdio/mmc/sd笔记

    [SDIO] SD card 初始化及常用命令解析 https://blog.csdn.net/u010443710/article/details/107014873 cmd0命令,是单向命令,ho ...

  9. CORS预检

    CORS是一种常见的跨域机制,一般由服务端提供一个Access-Control-Allow-Origin头来解决问题,但是这仅对一些"简单请求"有效.那么何谓"简单请求& ...

  10. 修改yarn 缓存包 默认安装位置

    yarn和npm一样,默认安装的全局包和缓存都在C盘里:npm的在:C:\Users\Administrator\AppData\Roaming\npmyarn的在:C:\Users\Admin\Ap ...