C语言问题,if条件里面按位取反
来源:互联网 发布:js trimend 编辑:程序博客网 时间:2024/05/23 15:39
#include <stdio.h>int main() { unsigned char te1,te2,te3; te1 = 0xff; te2 = 0x00; //te2二进制:00000000 if(te3 == (~te1)){ te3 = 1; } else{ te3 = 2; } printf("%d",te3);//输出:2 printf("%u",(char)(~te1));//无符号char 输出是:0 //无符号char 输出解析: //te1:0000 0000 0000 0000 0000 0000 1111 1111 //~te1:1111 1111 1111 1111 1111 1111 0000 0000 //~te1强制转换char:0000 0000 所以输出为0 printf("%u",(~te1)); //无符号 输出是:4294967040 //无符号 输出解析: //te1:0000 0000 0000 0000 0000 0000 1111 1111 //~te1:1111 1111 1111 1111 1111 1111 0000 0000 //~te1=二进制1111 1111 1111 1111 1111 1111 0000 0000=4294967040 printf("%d",(~te1)); //有符号int 输出是:-256 //有符号 输出解析: //te1:0000 0000 0000 0000 0000 0000 1111 1111 //~te1:1111 1111 1111 1111 1111 1111 0000 0000 //由于:~te1开头为1 是负数 补码输出 //~te1=1000 0000 0000 0000 0000 0000 1111 1111 + 1 = -256 if(-256 == (~te1)){ te3 = 1; } else{ te3 = 2; } printf("%d",te3);//输出:1 //说明在条件语句中(~te1)是按有符号输出 然后在做比较。 return 0;}
阅读全文
0 0
- C语言问题,if条件里面按位取反
- c语言 -> 条件控制 / if / switch / for
- C语言中条件编译命令(#if #else #endif)(
- C语言中条件编译命令(#if #else #endif)
- C语言中条件编译命令(#if #else #endif)
- C语言中条件编译命令(#if #else #endif)
- 黑马程序员---C语言基础---if条件句
- C语言的条件编译 #if #elif #endif #ifndef #define
- C语言的条件编译#if, #elif…
- C语言 if条件判断中包含语句块
- C语言条件运算符与if-else语句
- C标签和s标签的对比,特别是里面的if判断条件的写法
- C标签和s标签的对比,特别是里面的if判断条件的写法
- C语言中关于IF的问题..
- C语言:IF-ELSE的配对问题
- 关于if里面条件的面试题
- <c:if></c:if>条件判断
- C语言里面的指针问题
- js,jquery获取服务器时间
- idea 上传项目到GitHub遇到的坑
- 设计模式原则(5):迪米特法则
- CSS基础-清除浮动
- unix环境C编程之日期时间转换
- C语言问题,if条件里面按位取反
- java-UML
- 第六场选拔赛 Crixalis's Equipment 贪心
- Spring boot配置的事务失效,出现错误数据不回滚解决方案
- win7环境下如何关闭IIS7服务
- 【iOS】第03讲 文件读写/NSArray/NSData/NSFileManager/NSFileHandle
- 当点击提交或者查看的时候,隐藏和显示对话框
- python-排序算法
- Bluetooth profile: ATT/GATT(襄坤在线)