2013年3月10日

c/c++ 位操作的趣味应用

摘要: 原文地址:http://blog.csdn.net/morewindows/article/details/7354571(代码部分,略作删减;加下划线部分,是后加内容,非原文内容)位操作有很有趣的应用,下面列举出一些,欢迎读者补充。1. 高低位交换给出一个16位的无符号整数。称这个二进制数的前8位为“高位”,后8位为“低位”。现在写一程序将它的高低位交换。例如,数34520用二进制表示为:1000011011011000将它的高低位进行交换,我们得到了一个新的二进制数:1101100010000110它即是十进制的55430。这个问题用位操作解决起来非常方便,设x=34520=1000011 阅读全文

posted @ 2013-03-10 15:00 zhuyf87 阅读(1518) 评论(0) 推荐(0) 编辑

c/c++ 位操作与空间压缩

摘要: 原文地址:http://blog.csdn.net/morewindows/article/details/7354571(加下划线部分,是后加内容,非原文内容)这里不详细介绍筛素数法,本文着重对筛素数法所使用的素数表进行优化来减小其空间占用。要压缩素数表的空间占用,可以使用位操作。下面是用筛素数法计算100以内的素数示例代码(这种筛素数的方法很朴素,会多次重复访问素数表中的同一数据,改进方法请参看《改进的筛素数方法》一文):#include <stdio.h>#include <memory.h>const int MAXN = 100;bool flag[MAXN] 阅读全文

posted @ 2013-03-10 13:54 zhuyf87 阅读(1036) 评论(0) 推荐(0) 编辑

c/c++ 位操作 常用小技巧

摘要: 原文地址:http://blog.csdn.net/morewindows/article/details/7354571(加下划线部分,是后加内容,非原文内容)下面对位操作的一些常见应用作个总结,有判断奇偶、交换两数、变换符号及求绝对值。这些小技巧应用易记,应当熟练掌握。1.判断奇偶根据最未位是0还是1来决定,为0就是偶数,为1就是奇数。因此可以用if ((a & 1) == 0)代替if (a % 2 == 0)来判断a是不是偶数。下面程序将输出0到100之间的所有奇数。for (i = 0; i < 100; ++i) if (i & 1) printf(" 阅读全文

posted @ 2013-03-10 12:31 zhuyf87 阅读(836) 评论(0) 推荐(0) 编辑

c/c++ 位操作基础

摘要: 原文地址:http://blog.csdn.net/morewindows/article/details/7354571#quote(这里将原文分为4部分分别转载)在计算机中所有数据都是以二进制的形式存储的。位运算其实就是直接对在内存中的二进制数据进行操作,因此处理数据的速度非常快。在实际编程中,如果能巧妙运用位操作,完全可以达到四两拨千斤的效果。正因为位操作的这些优点,所以位操作在各大IT公司的笔试面试中一直是个热点问题。基本的位操作符有与、或、异或、取反、左移、右移这6种,它们的运算规则如下所示:符号描述运算规则 by MoreWindows&与两个位都为1时,结果才为1|或两个 阅读全文

posted @ 2013-03-10 11:31 zhuyf87 阅读(284) 评论(0) 推荐(0) 编辑

导航