精华内容
下载资源
问答
  • 在计算机底层采用0和1组成的二进制序列进行数据的描述; 二进制中的最高位用来代表符号位,符号位为0时表示非负数,符号位为1时表示负数 十进制(正)转为二进制 方式一:除商取余法:将一个十进制的整数不断的除以...

    Java - - - 进制运算

    在计算机底层采用0和1组成的二进制序列进行数据的描述;

    二进制中的最高位用来代表符号位,符号位为0时表示非负数,符号位为1时表示负数

    十进制(正)转为二进制

    • 方式一:除商取余法:将一个十进制的整数不断的除以2取余数,当商为0时停止,将得到的余数逆序排列即可得到该十进制数的二进制数;
    • 方式二:通过拆分的方式,将一个十进制的整数拆分为多个二进制权重的和,有该权重的位置为1,没有则为0;
      例如:十进制整数为7,可以拆分为:4+2+1,则二进制数为:111;

    十进制(负)转为二进制

    1. 将十进制的绝对值转换为二进制。
    2. 按位取反
    3. 加一

    例:-33转为二进制(8位)

    1. -33的绝对值转换为二进制:0010 0001
    2. 将 0010 0001按位取反得 :1101 1110
    3. 加一得:1101 1111
      结果:-33的二进制为 1101 1111

    二进制(负)转换为十进制

    该操作与负的十进制数转换为二进制操作相反,则为:

    1. 减一
    2. 按位取反
    3. 添加符号
    展开全文
  • 无论是数字还是字母在计算机里存储的都是二进制形式,有人说16进制,16进制也不过是二进制的缩写,本质还是二进制。假如现在有一个数8,计算机里二进制形式应该是1000(我去掉了前缀0),那么需要想办法获取这四位的...

    我们一般将十进制转换成而今使用的是对二求余然后除二的方法,其实很多时候我们不能更好的理解,我今天讲解一下通过位运算的方法怎么实现进制转换。

    思路:

    无论是数字还是字母在计算机里存储的都是二进制形式,有人说16进制,16进制也不过是二进制的缩写,本质还是二进制。假如现在有一个数8,计算机里二进制形式应该是1000(我去掉了前缀0),那么需要想办法获取这四位的每一位,然后通过字符串输入就OK,怎么获取一位,我们知道&运算a&b。

    a b a&b
    1 1 1
    1 0 0
    0 1 0
    0 0 0

    那么每次取一位,然后向右移一位,直到这个数为零:

    下面代码:

    package com.fgh;
    
    import java.util.Scanner;
    
    public class Number {
    	public static void main(String[] args) {
    		Scanner scan=new Scanner(System.in);
    		while(scan.hasNext()){
    		int num=scan.nextInt();
    		System.out.println(mathToBinary(num));
    		
    		}
    		
    	}
    	
    	public static String toBinary(int num){
    		//定义一个String用于返回得到的二进制
    		String binary="";
    		//判断接收的数是否为零,是零直接返回零
    		if(num==0){
    			return "0";
    			}
    		//判断移位后的数是否为零,为零结束
    		while(num!=0){
    			//获取每一位
    			int bit=num&1;
    			//将获取的位添加到字符串
    			binary=binary+bit;
    			//向右移一位
    			num=num>>1;
    		}
    		//我们获得的二进制是反向的所以通过Stringbuffer工具类把字符串反转
    		return new StringBuffer(binary).reverse().toString();
    		
    	}
    	//数学方式
    	public static String mathToBinary(int num){
    		String binary="";
    		if(num==0){
    			return "0";
    		}
    		while(num!=0){
    			int bit=num%2;
    			binary=binary+bit;
    			num=num/2;
    			
    		}
    		return new StringBuffer(binary).reverse().toString();
    	}
    
    }
    
    通过这个二进制的计算我们可以将十进制转换任意进制比如八进制,十六进制。
    八进制:与七,移三位。十六进制:与十五,移四位。

    展开全文
  • 今天来讲讲二进制与运算二进制相信大家都知道,就是只有0和1,逢2进1。 那么位运算又是什么呢? 程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位...

    今天来讲讲二进制与位运算!

    二进制相信大家都知道,就是只有01,逢21

    那么位运算又是什么呢?

    程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算。举个例子,6的二进制是11011的二进制是1011,那么6 and 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False1表示True,空位都当0处理)

     

    首先来认识一下位运算的符号:

    & (与) | (或) ~ (取反符) ^ (按位异或)

    >>(二进制右移) <<(二进制左移)

    含义

    Pascal语言

    C语言

    按位与

    a and b

    a & b

    按位或

    a or b

    a | b

    按位异或

    a xor b

    a ^ b

    按位取反

    not a

    ~a

    按位左移

    a shl b

    a << b

    无符号右移

    a shr b

    a >> b

     

     

    那么各个符号的作用又如何呢?

    首先设A=11011,B=10110

     

    1.    &

    即当两个数所表示二进制某位上的数都是1时,结果为1,否则为0

    A&B=10010

     

    2.|

      当两个数所表示的二进制中,在相同位上,如果有一个数是1,则结果为1,否则为0.

          A|B=11111

     

    3.~

          把某个数的每一位上的数都取反,即0变成1,1变成0.

          ~A=00100100

     

    4.^

    比较两个数每一位上的数字,如果相同,则结果为0,否则为1

    A^B=011011101

     

    5. >>

    把二进制数向右移x位。

    A>>1=1101A>>2=110

    B>>1=1011B>>2=101.

     

    6.<<

    把二进制数向左移x位。

    A<<1=110110

    不作过多解释。

     

    既然知道了符号效果,那么就可以有简单的应用!

    (以下摘自百度百科,对照表见顶部)

    去掉最后一位  x shr 1

    在最后加一个0 x shl 1

    在最后加一个1  x shl 1+1

    把最后一位变成1  x or 1

    把最后一位变成0  x or 1-1

    最后一位取反 x xor 1

    把右数第k位变成1 x or (1 shl (k-1))

    把右数第k位变成0 x and not (1 shl (k-1))

    右数第k位取反  x xor (1 shl (k-1))

    取末三位  x and 7

    取末k  x and (1 shl k-1)

    取右数第k  x shr (k-1) and 1

    把末k位变成1  x or (1 shl k-1)

    k位取反 | (101001->100110,k=4) | x xor (1 shl k-1)

    把右边连续的1变成0 | (100101111->100100000) | x and (x+1)

    把右起第一个0变成1 | (100101111->100111111) | x or (x+1)

    把右边连续的0变成1 | (11011000->11011111) | x or (x-1)

    取右边连续的1 | (100101111->1111) | (x xor (x+1)) shr 1

    去掉右起第一个1的左边 | (100101000->1000) | x and (x xor (x-1))( x and (-x))

     

     

    此外还有很多组合的用法,譬如在110100中取出最后的100,就可以这样:

    110100AA&(~(A-1))~A-1&A以及-A&A均为答案。

    未完待续(也许吧)

    展开全文
  • 二进制与逻辑运算

    千次阅读 2016-08-02 20:14:15
    二进制是十分深刻的思想,不是说,一个数字系统只有 0/1 就意味着它是二进制,而是某系统,仅有两种状态: 0/1 开关 阴阳 黑白 男女

    二进制是十分深刻的思想,不是说,一个数字系统只有 0/1 就意味着它是二进制,这是对二进制的狭隘理解,而是某系统,仅有两种状态:

    • 0/1、开关
      • 开关的通断;
    • 阴阳、黑白
    • 男女

    1. 减去1

    一个数不管是二进制形式,还是十进制形式,减去1,都将实现偶数和奇数之间的相互转化;

    2. 逻辑运算的实际意义

    考虑下面的场景,有明星团队(有男有女)的粉丝见面会(有男有女),各排成一列拥抱致意,但是出于对尴尬性的考虑,男明星就不再跟男粉丝拥抱了。

    男女 && 男女 ⇒

    • 男男,×
    • 男女,√
    • 女男,√
    • 女女,√

    显然是二进制,如果将男设为 1,女设为 0,则明星与粉丝相与时为 1 时,是男明星遇到男粉丝的情况。
    如果将男设为 0,女设为 1,则明星与粉丝相或时为 0,也是男明星遇到男粉丝的情况。

    展开全文
  • 二进制数的运算方法

    千次阅读 2016-01-10 02:15:44
    二进制数的运算方法    电子计算机具有强大的运算能力,它可以进行两种运算:算术运算和逻辑运算。1.二进制数的算术运算 二进制数的算术运算包括:加、减、乘、除四则运算,下面分别予以介绍。(1)二进制数的...
  • 二进制和位运算

    千次阅读 2019-03-15 20:03:26
    所有编程语言都是一种人和计算机之间的翻译工具,人的数组语言翻译成二进制给计算机读取,然后把计算机的二进制数据翻译成人类的语言呈现出来。 16进制 16进制用于缩写(简写)2进制,将2进制从后向前 每4位数转换...
  • 2)二进制的简写形式二、进制运算1)八进制运算表(1) 加法运算表(2)乘法运算表(3)八进制简单运算题三、数据宽度1)什么是数据宽度2)计算机中常用的基本数据宽度四、无符号数有符号数进制进制也就是进位计数制,是人为...
  • 如 int num=~3+2; 结果num的值为-2。 ~3的结果是-12(8位举例。PS:原谅我没换为int32位的,数值太大了)。 -12的补码是取反加+,结果为-4。 2的补码还是2。
  • 二进制数的运算规则

    万次阅读 2018-08-24 10:14:32
     (3) 乘法运算规则 例如:二进制之间可以执行算术运算和逻辑运算,其规则简单,容易实现。  (1) 加法运算规则  0 + 0 = 0 例如: 1 1 0 1  0 + 1 = 1 +) 1 0 0 1  1 + 0 = 1  1 + 1 = 0 (产生进位) ...
  • python 十进制与二进制以及位运算

    千次阅读 2014-07-10 23:17:01
    From: ...  在python2.6以上的版本中自带了将十进制转化为二进制的函数bin()。  看一下bin.__doc__怎么说的。 >>>print bin.__doc__ bin(number) -> string return the bina
  • 二进制数的运算方法    电子计算机具有强大的运算能力,它可以进行两种运算:算术运算和逻辑运算。 1.二进制数的算术运算  二进制数的算术运算包括:加、减、乘、除四则运算,下面...
  • 十进制与二进制之间的转换

    万次阅读 多人点赞 2018-08-11 16:23:06
    整型有4种进制形式: 1.十进制: 都是以0-9这九个数字组成,不能以0开头。 2.二进制: 由0和1两个数字组成。 3.八进制: 由0-7数字组成,为了区分其他进制的数字区别,开头都是...十进制与二进制之间的转换: ...
  • 它的值域只有⋯0’,⋯1’两个值,但是通过对这两个值的有效组合和简单运算,却能表达出客观真实世界的千变万化,下面通过分析二进制和集合之间强大的内在联系,说明二进制在集合运算中的巨大作用。若集合A具有n个...
  • 2、记住前15个数值的二进制与十六进制表现形式有助于完成它们之间的转换工作 3、在使用无符号数值时,进位标志有助于判断是否发生溢出 4、使用逻辑运算符“or”,“and”,和“xor”分别来实现对比特位的设置、...
  • Java中的二进制、八进制、十六进制和移位运算一个源代码说明一切:package ... * @author wxb Description:二进制、八进制、十六进制,移位运算 * * 2015-9-28 下午8:31:04 */ public class BitCompute
  • C/C++---二进制类(运算符号的重载)

    千次阅读 2020-12-14 16:41:02
    二进制类(运算符号的重载) 将一个16位二进制数表示成0和1的字符序列,即用一个字符数组来存放这个二进制数。在这个类中设置两个构造函数,一个...两个重载运算符“+”,“-”,用来完成两个二进制之间的加减运算
  • 本课程内容如下:第1节 二进制及十进制的由来第2节 二进制、十进制、八进制、十六进制的表示方法第3节 二进制和十进制之间的相互转换第4节 二进制和八进制之间的相互转换第5节 二进制和十六进制之间的相互转换第6节 ...
  • 二进制运算及转换(课件)计算机基础-二进制运算及转 换 课程导入 在日常生活中,人们广泛使用的是十进 制数,有时也会遇到其他进制的数。 数制 又叫进位计数制,指的是一种计数规则 二进制 十二进制 十进制 十进制 ...
  • 前言 说真的我人傻了 看过这个系列前一部的人可能会知道我采用了字符串的形式去表示一串二进制代码,并且对二级制的操作...对二进制有效的运算(异或,或,),可以直接用10进制数字转换为2进制串,然后运算 所...
  • 进制转换:二进制、八进制、十六进制、十进制之间的转换 不同进制之间的转换在编程中经常会用到,尤其是C语言。 将二进制、八进制、十六进制转换为十进制 二进制、八进制和十六进制向十进制转换都非常容易,就是...
  • 将一个16位二进制数表示成0和1的字符序列,即用一个字符数组来存放这个二进制数。 在这个类中设置两个构造函数,一个是传递整数参数的,另一个是传递字符串参数的。 因为用户在创建对象时传递的二进制数,可能是以...
  • 按位、或、非、异或、左移、右移、无符号右移
  • 2)二进制的简写形式二、进制运算1)八进制运算表(1) 加法运算表(2)乘法运算表(3)八进制简单运算题三、数据宽度1)什么是数据宽度2)计算机中常用的基本数据宽度四、无符号数有符号数 进制 进制也就是进位计数制,...
  • 补码在二进制带符号运算中的应用

    千次阅读 2018-03-20 20:22:51
    1. 引入补码的原因 在数字电路或系统中,为简化电路,常将负数用补码表示,以便将减法运算变为加法运算。以钟表为例,时间从6点钟减少到2点钟,可以通过6-4=2逆时针转动4个小时实现;也可以通过6+8=14(表盘为12进制...
  • 二进制加减乘除运算

    万次阅读 多人点赞 2019-03-09 11:40:48
    加减 二进制 十进制 0000 =0 0001 =1 ...二进制运算算术运算二进制的加法: 0+0=0, 0+1=1 , 1+0=1, 1+1=10(向高位进位); 列如 3+1=0011+0001=0100 5+2=0101+0010=0111 二进制的减...
  • (具体用法如下图)END二进制与进制之间的转换1二进制转八进制方法为:3位二进制数按权展开相加得到1位八进制数。(注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0)。(具体用...
  • 执行用时 :8 ms, 在Hamming Distance的C++提交中...两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。 给出两个整数 x 和 y,计算它们之间的汉明距离。 注意: 0 ≤ x, y < 2^31. 示例:...
  • 二进制运算

    2010-02-21 16:59:03
    二进制运算分为两大块:算数运算和逻辑运算。 1、二进制的算术运算  二进制数的算术运算非常简单,它的基本运算是加法。在计算机中,引入补码表示后,加上一些控制逻辑,利用加法就可以实现二进制的减法、乘法和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 170,924
精华内容 68,369
关键字:

二进制之间的与运算