位运算符-需要注意的地方

这篇博客介绍了位运算符的重要性,特别是按位取反、左移和右移操作。按位取反通过示例说明了如何进行位翻转,左移操作中强调了有符号左移可能导致数据类型变化,而右移则解释了如何根据符号位填充空缺。
摘要由CSDN通过智能技术生成

第一篇Blog

本人第一个博客,以后会经常写(此时的我就像戏台上的老将军),以免第二次犯同样的错误。因为考研的原因,好久没有coding了,略感生疏。疯玩了十几天,决定拿起书本,扎实地重新看一遍专业书。

位运算符

从开始学习编程起,就不是很注重位运算,因为觉得可以用别的方法代替。后来发现有些东西用位运算处理更有效率。这里主要写以下几个位运算符:

  1. 按位取反
  2. 左移
  3. 右移

按位取反

为了便于理解以byte数据类型作为例子。
127:  01111111
~127:10000000
即~127的值为-128;
同理,~-128的值为127;
(在数字层面的表现为:取相反数后减一)

左移

二进制数向左移一位,空缺填0;
特别注意 左移是有符号的,如果左移后符号位变化,会导致数据类型的改变。
例如:byte类型的127左移一位后会变为int类型的254;
24:      00011000
24<<1:00110000
即24<<1的值为48;

特别的 对于127左移这种情况:
127:                              01111111
127<<1:00011111110
即127<<1的值为254;
同理,-128<<1的值为-256;

右移

二进制数向右移一位,空缺填符号位数字;
24:      00011000
24>>1:00001100
即24>>1的值为12;
同理,-24>>1的值为-12;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值