题意  给你两个二进制数m,n   求他们的最大公约数  用二进制表示  0
先把二进制转换为十进制  求出最大公约数  再把结果转换为二进制  数比较大要用到大数
import java.util.*;
import java.math.*;
public class wl6_9 {
	static BigInteger two = BigInteger.valueOf(2), one ...
                            
                            
                                分类:
其他好文   时间:
2014-09-28 12:58:32   
                                阅读次数:
225
                             
                    
                        
                            
                            
                                1. 1和-1在内存中是如何表示的? 2. 给一个数加上负号在内存中会如何改变? 3.一个练习引发的思考。 先引入一个小工具,作用是将一个char转成二进制表示。 static?void?n2(unsigned?char?c)?{
????int?...
                            
                            
                                分类:
其他好文   时间:
2014-09-27 15:21:51   
                                阅读次数:
212
                             
                    
                        
                            
                            
                                前一段时间在网上找以图搜图的资料,发现了感知哈希算法,得出的哈希值以字符串形式保存,我们管这种形式叫做哈希指纹。字符串中为十六进制数,需计算其二进制中的明氏距离,即二进制表示中不一样位数的个数。如下测试代码:...
                            
                            
                                分类:
其他好文   时间:
2014-09-26 19:57:48   
                                阅读次数:
157
                             
                    
                        
                            
                            
                                把一个整数减去1之后,再和原来的整数做位与运算,得到的结果相当于把整数的二进制表示中的最右边一个1变成0。 例如:1100&(1100-1)=1100&1011=1000 用这个小定理可以解决一些问题: 判断一个整数的二进制表示中有多少个1int count(int n){ int ...
                            
                            
                                分类:
其他好文   时间:
2014-09-23 10:26:24   
                                阅读次数:
177
                             
                    
                        
                            
                            
                                大家都知道,假如有a,b两个整型数,我们可以用
a^=b;
b^=a;
a^=b;
来交换a,b的值,在这里我说说其中的原理:
^ 在 C 里面是按位异或操作符,相同的话异或的结果就是 0,不同的话就是 1。举个例子,比如 a 表示十进制的 5,b 表示十进制的 12,按位异或结果就是:
a = 0101   (5 的二进制表示)
b = 1100   (12 的二进制表...
                            
                            
                                分类:
其他好文   时间:
2014-09-22 14:10:22   
                                阅读次数:
203
                             
                    
                        
                            
                            
                                又是一道用欧拉定理解的题。。嗯,关键还是要建好方程,注意一些化简技巧题目大意:给定一个由 p / q 生成的循环小数,求此循环小数在二进制表示下的最小循环节以及不是循环节的前缀思路:小数化为二进制,应该乘2取余, 设从小数的第x位开始有长度为y的循环节,先把 p/q 化为最简分数,此时p,q互质则应...
                            
                            
                                分类:
其他好文   时间:
2014-09-19 15:08:55   
                                阅读次数:
207
                             
                    
                        
                            
                            
                                在数字电路中,出于应用的需要,我们可以使用无符号数,即包括0及整数的集合;也可以使用有符号数,即包括0和正负数的集合。在更加复杂的系统中,也许这两种类型的数,我们都会用到。有符号数通常以2的补码形式来表示。图1列出了4位二进制表示法所对应正负数。进一步观察,我们发现两种类型数的加减法是一样的,做加法...
                            
                            
                                分类:
其他好文   时间:
2014-09-12 13:12:03   
                                阅读次数:
596
                             
                    
                        
                            
                            
                                给定一个字符串类型(string)表示的小数,打印出它的二进制表示。
这个题注意字符串的合法性。
不过下面的代码没有处理那种无限循环的小数,
当出现无限循环小数时,while(other>0)可能永久为true
代码:
#include 
#include 
std::string to_binary_string(const std::string& vNumStr)
{
	std:...
                            
                            
                                分类:
其他好文   时间:
2014-09-11 01:11:31   
                                阅读次数:
316
                             
                    
                        
                            
                            
                                原码: 计算机中所有的数均用0、1编码表示,数字的正负号也不例外,如果一个机器数字长是n位的话,约定最左边一位用作符号位,其余n-1位用于表示数值。1、一个正数,当用原码、反码、补码表示时,符号位都固定为0,用二进制表示的数位值都相同,即三种表示方法完全一样。 2、一个负数,当用原码、反码、补码表示...
                            
                            
                                分类:
其他好文   时间:
2014-09-09 17:32:49   
                                阅读次数:
180
                             
                    
                        
                            
                            
                                情形一:数组中所有数都出现两次,只有一个数出现一次
情形二:数组中所有数都出现两次,只有两个数出现一次
情形一二很多地方都有说明,这里就不啰嗦了,有一点需要注意:当知道原始数据时,可以使用解方程的方法,这样可以把上面的情形无线推广,具体见编程之美
情形三:数组中所有数都出现三次,只有一个数出现一次
方法一:如果数组中的元素都是三个三个出现的,那么从二进制表示的角度,每个位上...
                            
                            
                                分类:
其他好文   时间:
2014-09-06 09:46:13   
                                阅读次数:
171