首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

JS算法探险之整数

从今天起,我们又重新开辟了一个新的领域:JS算法编程。为什么,会强调 JS 呢。其实,市面上不乏优秀的算法书和资料。...因为,有些语法和使用方式和平时自己开发中所使用的JS语法,「大相径庭」。导致在学习过程中,遇到了不小的阻力。 同时,由于JS自身的一些特性,导致在实现一些在其他语言看似常规操作的问题上,需要绕很多路。...JS中查看一个正整数的「二进制格式」 (number).toString(2) number前后有括号,这涉及都JS优先级了 4. 用i>>1来计算"i/2",而且还是下整。...二进制 JS中查看一个正整数的二进制格式 (number).toString(2) 例如:(3).toString(2) ==> '11' 在JS中, 用i>>1来计算"i/2" 例如:4>>1 ===...2 5>>1===2 该运算是下整。

2K10

将正整数向上整为2次幂

本文参考了哔哩哔哩UP主LH_Mouse的视频 前言 生活中我们可能经常遇到将给定的整数向上整为最接近该数字的2次幂的情况,例如25的向上整2次幂最接近该数字是32 = 2^5,37的向上整2次幂最接近该数字是...2次幂为32,对应的二进制为b100000,11对应的二进制数字为b01011,其向上整为2次幂为16,对应的二进制为b10000,即对于非2^n的整数a,只需要将其二进制最左边的1取出来,再将该位置的右边全部替换为...0,然后将该数字左移一位得到数字b,b就是a对应的向上整为2次幂的数字。...所以关键就是如何将给定数字的最左边的1给提取出来,很容易想到的一个办法就是:不断地将该数字往右移,并记录下移动的次数,直到将该数字变为1: int test(int num) {...请注意我们的int类型是32位字长,为了确保所有的正整数都可以被考虑到,如某个整数0x20000001,我们需要将最左边的1移动29次,我们只需要将num右移16位,然后再异或一次,将得到32个“1”(

1.4K10
领券