无锡 网站 seo 优化,怎么做试玩平台推广网站,域名备案迁移,企鹅自媒体平台注册1.十进制整数的反码
每个非负整数 N 都有其二进制表示。例如#xff0c; 5 可以被表示为二进制 101#xff0c;11 可以用二进制 1011 表示#xff0c;依此类推。注意#xff0c;除 N 0 外#xff0c;任何二进制表示中都不含前导零。
二进制的反…1.十进制整数的反码
每个非负整数 N 都有其二进制表示。例如 5 可以被表示为二进制 10111 可以用二进制 1011 表示依此类推。注意除 N 0 外任何二进制表示中都不含前导零。
二进制的反码表示是将每个 1 改为 0 且每个 0 变为 1。例如二进制数 101 的二进制反码为 010。
给你一个十进制数 N请你返回其二进制表示的反码所对应的十进制整数。
方法一位运算
#方法一位运算
def bitwiseComplement(n):tem2cnwhile c1:c1tem1 #找到最高二进制位1的位置return n^(tem-1) #异或运算相同为0相异为1,全为1的数进行异或
2.将数字变成 0 的操作次数
给你一个非负整数 num 请你返回将它变成 0 所需要的步数。 如果当前数字是偶数你需要把它除以 2 否则减去 1 。 方法一位运算
#方法一位运算
def numberOfSteps(num):res0while num:res(num1)(num1) #判断最右边是不是1和num是不是大于1,为1进行两步操作num1return res
3.根据数字二进制下 1 的数目排序
给你一个整数数组 arr 。请你将数组中的元素按照其二进制表示中数字 1 的数目升序排序。
如果存在多个数字二进制中 1 的数目相同则必须将它们按照数值大小升序排列。
请你返回排序后的数组。
方法一排序位运算
#方法一排序位运算
def sortByBits(arr):def count1(n):res0while n :resn1n1return res #计算1的个数return sorted(arr,keylambda x: (count1(x),x))