题目原文:写程序交换一个整数二进制表示中的奇数位和偶数位,用尽可能少的代码实现。 (比如,第0位和第1位交换,第2位和第3位交换…)解答这道题目比较简单。分别将这个整数的奇数位和偶数位提取出来,然后移位取或即可。代码如下:int swap_bits(int x){ return ((x & 0...
                            
                            
                                分类:
其他好文   时间:
2015-04-22 22:01:00   
                                阅读次数:
186
                             
                         
                    
                        
                            
                            
                                题目给定一个字符串类型(string)表示的小数,打印出它的二进制表示。 如果这个数无法精确地表示为二进制形式,输出”ERROR”。解答整数部分通过不断地对2取余然后除以2来得到其二进制表示, 或是不断地和1按位与然后除以2得到其二进制表示。 小数部分则通过不断地乘以2然后与1比较来得到其二进制表示...
                            
                            
                                分类:
其他好文   时间:
2015-04-22 21:58:46   
                                阅读次数:
132
                             
                         
                    
                        
                            
                            
                                常用进制转换除了10进制,其他几种在JAVA 中几个进制的表示:二进制:比如 int a = 1;表示应该是 0001.是四位的,但是前面的全是0可以不显示。由于二进制表示太长了,因此一般不用,eclipse 也不会显示出来。听说JDK 1.7 以上 二进制是0b 开头,由于JDK BUG 原因,一...
                            
                            
                                分类:
其他好文   时间:
2015-04-20 14:48:52   
                                阅读次数:
131
                             
                         
                    
                        
                            
                            
                                /** 
数位dp
求所有比n(1~10^6)小的书中二进制表示法“1”的个数是m的数的个数,dp[i][j]表示以i位数1的个数为j
*/
#include 
#include 
#include 
#include 
using namespace std;
const int maxn=50;
int dp[maxn][maxn],bit[maxn];
int n,m;
int dfs(in...
                            
                            
                                分类:
其他好文   时间:
2015-04-20 09:22:55   
                                阅读次数:
162
                             
                         
                    
                        
                            
                            
                                一、描述
题目1:判断一个数字是否是2的阶次方数,例如8,16,64,256都是2的阶次方数。
          题目解析:如果一个数是2的阶次方数,那么这个数字的二进制数的首位为1,后面跟着若干个0,例如8用二进制表示为1000,64为1000000, 如果让这个数减1,然后和这个数做按位&运算即得0,即(number-1)&number==0,8&7=1000&0111=0000。
题...
                            
                            
                                分类:
编程语言   时间:
2015-04-19 11:35:08   
                                阅读次数:
171
                             
                         
                    
                        
                            
                            
                                二进制的状态压缩。比如A集合里面有{1,5,7}那么就表示为1010001。B集合有{3,4},二进制表示1100。A|B=1011101。按照这样的思路 可以用01背包 把所有的组合全部求出来。#include#include#include#includeusing namespace std;...
                            
                            
                                分类:
其他好文   时间:
2015-04-18 08:38:15   
                                阅读次数:
136
                             
                         
                    
                        
                            
                            
                                1、给定两个正整数(二进制形式表示)A和B,问把A变为B需要改变多少位(bit)?也就是说,整数A和B的二进制表示中有多少位是不同的?(181)解法一:举例说明,为了减少复杂度,就使用八位二进制吧。设 A = 0010 1011, B = 0110 0101.1. C = A & B = 0010 ...
                            
                            
                                分类:
编程语言   时间:
2015-04-15 16:47:13   
                                阅读次数:
152
                             
                         
                    
                        
                            
                            
                                任何数在计算机内部都是用二进制表示的,可以用这个特性来快速判断N!的二进制表示中最低位1的位置。解法一:将一个数的二进制数除以2,若二进制数的末尾是0,则能整除,否则不能整除。因此,求N!的二进制表示中最低位1的位置即为求N!中有多少个质因数2以下为代码1:#include<..
                            
                            
                                分类:
其他好文   时间:
2015-04-11 11:56:30   
                                阅读次数:
105
                             
                         
                    
                        
                            
                            
                                这里要介绍3种解法第一种;(常规解法)数在计算机内部都是用二进制表示的,所以可连续用数n除2代码1:#include<iostream>
usingnamespacestd;
intmain(void)
{
intn,m;
m=0;
cin>>n;
while(n)
{
if(n%2)//如果n不能整除2,说明当前n的末尾数为1
m++;
n>>=1;..
                            
                            
                                分类:
其他好文   时间:
2015-04-11 11:53:16   
                                阅读次数:
100
                             
                         
                    
                        
                            
                            
                                Java 十六进制字符串-HexString http://my.oschina.net/xinxingegeya/blog/287476 byte[]和十六进制字符串相互转换 Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示。 所以我...
                            
                            
                                分类:
编程语言   时间:
2015-04-07 12:15:36   
                                阅读次数:
211