计算机中的二进制

本文深入探讨了计算机如何使用二进制系统进行信息处理。从二进制数的基本概念到二进制在存储、计算和通信中的关键作用,揭示了二进制为何成为现代计算机科学的基础。通过学习,读者将能够理解二进制数的转换,以及它如何转化为我们日常生活中的十进制数字。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   计算机中存储的都是二进制,最高位表示符号位,0为正数,1为负数。在计算机中其实没有原码反码,存储的二进制全都是补码。而存储为补码的原因就是为了简便计算(可以把减法变为加法来计算)。原码和反码是我们在求补码时的抽象。
   正数的原码,反码,补码都是原码本身,三者的结果是一样的;
   负数的反码是在原码的基础上,符号位不变,其余的按位取反;补码是反码+1。
   所以我们使用java输出一个负数的二进制时,其实是这个数的补码,不是原码。比如-10:
   -10的原码是:1000 0000 0000 0000 0000 0000 0000 1010
   使用java将-10转为二进制打出来其实是-10的补码:
  ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190225141618529.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQ3NjA1Mw==,size_16,color_FFFFFF,t_70)
   关于左移<<,右移>>,无符号右移>>>运算符:
   左移:将一个整数转换成二进制,将二进制的每一位各左移动。规律:假设移动n位,变量是x,公式:x<<n=x*2^n;
   右移:>>(有符号),当数值为负数时,在右移时的第一位符号位不参与移动。
   规律:假设移动n位,变量是x。
   				如果是正数,公式:x>>n=x/2^n;(取整)
   				如果是负数,若x/2^n没有余数,
   				公式:x>>n=x/2^n;
   				若x/2^n有余数,
   				公式:x>>n=x/2^n-1;(取整之后减1)
  	无符号右移:>>>(无符号),当数值为负数时,在右移时的第一位符号位参与移动。

	按位与(&)	按位或(|)	按位异或(^)	按位取反(~)
	按位与运算:将两个数字转换成二进制,每一位进行与运算。只有当相应位上的数都是1时,该位才取1,否则该为为0。
	按位或运算:将两个数字转换成二进制,每一位进行或运算。只要相应位上存在1,那么该位就取1,均不为1,即为0。
	按位异或:	 将两个数字转换成二进制,每一位进行异或。相应位上相同为0,相异为1。
	按位取反:   将两个数字转换成二进制,每一位进行取反。每个位上都取相反值,1变成0,0变成1。
	
   异或运算规律:一个数异或同一个数两次,结果还是这个数。利用这个结论可以不用第三方变量交换两个数的值:
   交换a,b的值:
    a=a^b;
	b=a^b;
	a=a^b;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值