数字转化为十六进制 按位操作(详解)

力扣习题405:数字转化为十六进制数 (转化8进制,算法类似)

      这道题在力扣里面归属于位运算,位运算一般来讲,速度比较快,效率高。在解决本题时,个人作为初学者最先想到的是直接用除法、求余去解决,但是这样比较的麻烦,算法效率不高,进制转换一般可以尝试使用位运算来实现。题目很好理解,算法也不难,在此,本人想写一篇详细解法来为大家提供便利。

     首先,使用位运算最好是能对位运算的特性有了解。本题主要使用&运算。&运算最大的特点是同为1才能得1,假如我们用全1于某一个数做运算,结果还是数的本身,且结果的位数为两者位数最小。比如26&15,15有4位,结果为26的低四位;4&15,结果为4。如图所言。也就是说,可以用&运算去截取数字的低位

     那假如说,要截取一些数的高位,或者是中间位怎么办呢??这时,可以用>>,右移符号,数字右移,正数的话补0,负数补1。这时数字通过右移就可以将高位移到低位。当然&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值