[万人千题] 《算法零基础100讲》(第42讲) 位运算 (位与) 入门(C语言)
2021/12/1 22:07:14
本文主要是介绍[万人千题] 《算法零基础100讲》(第42讲) 位运算 (位与) 入门(C语言),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
零、写在前面
一、知识点
二、课后习题
191.位1的个数
剑指Offer 15.二进制中1的个数
1356.根据数字二进制下1数目排序
零、写在前面
本章主要描述了,简单的位与运算
《算法零基础100讲》(第42讲) 位运算 (位与) 入门_英雄哪里出来-CSDN博客位运算位与的初步入门https://blog.csdn.net/WhereIsHeroFrom/article/details/120876417
一、知识点
1.位于运算是一个二元运算符x&y
左操作数 | 右操作数 | 结果 |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
就是有‘0‘结果就是’0‘
2. ..........
亲,请看上文链接哦!
二、课后习题
191.位1的个数
191. 位1的个数
编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量)。
思路:按照2的幂的思路,每次位与会消去末尾最后一位的1(减1嘛),直到位与之后为0
int hammingWeight(uint32_t n) { int ans=0; while(n){ n&=(n-1); ans++; } return ans; }
剑指Offer 15.二进制中1的个数
剑指 Offer 15. 二进制中1的个数
编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为 汉明重量).)。
思路;同上
int hammingWeight(uint32_t n) { int ans=0; while(n){ n&=(n-1); ans++; } return ans; }
1356.根据数字二进制下1数目排序
1356. 根据数字二进制下 1 的数目排序
给你一个整数数组 arr 。请你将数组中的元素按照其二进制表示中数字 1 的数目升序排序。
如果存在多个数字二进制中 1 的数目相同,则必须将它们按照数值大小升序排列。
请你返回排序后的数组。
思路:先算2进制1的个数
然后直接qsort排序
/** * Note: The returned array must be malloced, assume caller calls free(). */ int sum(int n) { //计算2进制的1的个数 int ans=0; while(n){ n&=(n-1); ans++; } return ans; } int cmp(const int*a,const int*b){ if(sum(*(int*)a)==sum(*(int*)b)){ //为qsort设计cmp,把那个数用sum算一下比大小 //俩数一一边多的时候就直接比数的大小 return *(int*)a-*(int*)b; } return sum(*(int*)a)-sum(*(int*)b); } // int* sortByBits(int* arr, int arrSize, int* returnSize){ qsort(arr,arrSize,sizeof(int),cmp); //直接排 *returnSize=arrSize; //返回长度 return arr; //返回结果 }
这篇关于[万人千题] 《算法零基础100讲》(第42讲) 位运算 (位与) 入门(C语言)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28pyqt 怎么打包整个项目-icode9专业技术文章分享
- 2024-09-28laravel Commands 创建带有参数的 Artisan 命令的步骤和示例-icode9专业技术文章分享
- 2024-09-28antd怎么实现渲染tiff图片-icode9专业技术文章分享
- 2024-09-28英文半角中划线和中文全角的中划线有什么区别-icode9专业技术文章分享
- 2024-09-28nvm npm 和node 他们之间有什么关系-icode9专业技术文章分享
- 2024-09-28Node Version Manager (nvm)使用教程-icode9专业技术文章分享
- 2024-09-28nvm命令太慢,是什么原因-icode9专业技术文章分享
- 2024-09-28Kotlin 如何增加、删除和修改 MutableStateFlow 中的值。-icode9专业技术文章分享
- 2024-09-28Kotlin的stateFlow.update 写法介绍-icode9专业技术文章分享
- 2024-09-28kotlin 怎么获取当前时间格式-icode9专业技术文章分享