取反操作的两种方法
来源:互联网 发布:new balance淘宝 编辑:程序博客网 时间:2024/04/30 05:06
一个程序如下:
int x=10;
int y=~x;
printf("%d/n",y);
其运行结果为-11,为什么呢,让我们来看看:
(int)10 在32位计算机中表示为0x0000000A ,对其逐位求反后得到0xFFFFFFF5, 因为这个数的最高位为1,所以它是个负数,我们知道负数在机器中是以补码形式存在的。只要将这个补码转换成10进制数就可以了。步骤如下:
方法1: 232-0xFFFFFFF5 = 1+ (0xFFFFFFFF -0xFFFFFFF5) = 1 + 0x0000000A = 11,取其负号即可。
方法2: 首先求出其原码(按位取反加1)0x8000000A +1 = 0x8000000B,即为-11
- 取反操作的两种方法
- 取反的方法
- Python取日期范围循环操作的两种方法
- 补码取反的方法
- Java 取随机数的两种方法
- 取随机数的两种方法
- 取反操作的细节问题
- 计算机的取反(~)操作解释
- 取反操作
- ~取反操作符
- JS公共方法:全部反选,获取url指定的参数,取值保留两位小数...
- 获取取view的图片的两种方法
- girdview取隐藏列的两种方法
- oracle 中随机取一条记录的两种方法
- QTP中如何取文本框的值 两种方法
- 求组合数(取模)的两种方法
- 爬取网页的两种方法(python3)
- 取反操作的陷阱及一个电阻的迷惑
- C语言中va函数的使用
- Visual C++2003中DLL初学者指南
- 计算中为什么要用补码表示
- java中字符串的操作汇总
- 0/1背包问题解法
- 取反操作的两种方法
- Hibernate的对象关系影射配置
- 自己抽象的J2ME进度条
- 玩玩数字图像处理之边缘提取
- ARM条件码与CPSR标志位的关系
- 很不错的net知识blog(1)
- 图解虚函数笔记
- 3D编程指南第四部分:M3G内建碰撞、光照物理学和照相机视点
- 理解软件保护技术之采用时间限制