(来自高程我的笔记)关于位操作符的补码与反码与按位非操作符

位操作符在计算机中用于按位操作数值,尤其在处理二进制补码表示的有符号整数时。本文详细介绍了负数的二进制补码计算过程,并通过例子解析了按位非(~)、按位与(&)、按位或(|)和按位异或(^)操作符的工作原理和应用。
摘要由CSDN通过智能技术生成

位操作符用于最基本的层次上,即按内存中表示的数值的位来操作数值。位操作符不能直接操作64位的值,而是先将64位的值转换为32位的整数,然后执行操作,最后转为64位。对于有符号的整数,32位中的前31位用于表示整数的值,第三十二位表示数值的符号,0表示正值,1表示负值。这个表示符号的位叫做符号位。

负数的同样是以二进制码存储,但使用的格式是二进制补码。计算一个熟知的二进制补码,需要经过三个步骤

1)求这个数值绝对值得二进制码(例如-18的二进制补码,先求18的二进制码)

求-18的二进制补码,首先求得18的二进制码,即

0000 0000 0000 0000 0000 0000 0001 0010

2)求二进制的反码,即将0,1互换;

1111  1111  1111  1111  1111  1111 1110  1101

3)最后,二进制反码加一;

1111  1111  1111  1111  1111  1111 1110  1101

     1(进位)

1111  1111  1111  1111  1111  1111 1110  1110


在对NaN和Infinify值应用位操作符时,会被当做0处理。


按位非(~)

var num &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值