博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JZ-C-10
阅读量:6573 次
发布时间:2019-06-24

本文共 2330 字,大约阅读时间需要 7 分钟。

剑指offer第十题:位运算,判断二进制中1的个数

1 //============================================================================ 2 // Name        : JZ-C-10.cpp 3 // Author      : Laughing_Lz 4 // Version     : 5 // Copyright   : All Right Reserved 6 // Description : 位运算 7 //============================================================================ 8  9 #include 
10 #include
11 using namespace std;12 /**13 *位运算:14 */15 int Number(int n) {16 int count = 0;17 while (n > 0) {18 if (n & 1) { //和1(...01)相与运算,保证除最低位均为0,若最低位为1,则与运算结果为1,否则为0 ★★19 count++;20 }21 n = n >> 1; //将要判断的数右移一位(有可能出现死循环,如0X80000000 为负数,后移一位为0XC0000000(负数右移左端补1),最后变成0XFFFFFFFF,死循环···★★)22 }23 return count;24 }25 int Number1(int n) {26 int count = 0;27 int flag = 1;28 int time = 0;29 while (flag) {30 cout << "第" << ++time << "次" << endl;31 if (flag & n) {32 count++;33 }34 flag = flag << 1; //将flag左移,避免死循环。32位整数需要移位32次★★35 }36 return count;37 }38 int Number2(int n) {39 int count = 0;40 while (n) {41 ++count;42 n = n & (n - 1);// n-1:将从低至高位第一个1变为0,同时从低至高位第一个1后的所有0变为了1,n&(n-1):将从低至高的第一个1及其后面的数全部变为0 循环即可★★43 }44 return count;45 }46 int main() {47 // cout << Number(0x80000000) << endl; //前面带0 表示八进制,前面带0x 表示十六进制48 // cout << Number1(10) << endl; //前面带0 表示八进制,前面带0x 表示十六进制49 cout<
<

另外:将十进制数转换为‘A-Z’进制数(excel列的计数方式)

1 //============================================================================ 2 // Name        : ExcelNum.cpp 3 // Author      : Laughing_Lz 4 // Version     : 5 // Copyright   : All Right Reserved 6 // Description : 位运算 7 //============================================================================ 8  9 #include 
10 #include
11 using namespace std;12 /**13 *输入十进制整数,返回A-Z进制数14 */15 char ExcelNum(int n) {16 char result = 0;17 if (n <= 0) {18 cout<<"错误"<
s;22 while (n > 0) {23 int remain = n % 26;24 remain == 0?remain = 26,n = n-1:NULL;25 result = remain + 64;26 n = n / 26;27 s.push(result);28 }29 cout<<"A-Z进制数为:"<

 

转载于:https://www.cnblogs.com/Laughing-Lz/p/5530328.html

你可能感兴趣的文章
浅谈Socket 理解
查看>>
loj#6435. 「PKUSC2018」星际穿越(倍增)
查看>>
TYVJ P1093 验证数独 Label:none
查看>>
JSP九大内置对象与Servlet的对应关系
查看>>
十行代码分清Java 的 || 和 &&
查看>>
红黑树学习笔记(2)-插入操作
查看>>
磁盘存储和文件系统
查看>>
PHP array_diff 计算数组的差集
查看>>
SQL Server数据库性能优化之索引篇【转】
查看>>
Unity3d 规范默认 目录结构
查看>>
在javascrit中怎样来刷新页面
查看>>
python爬虫入门-简书七日热门文章数据
查看>>
C,java,Python,这些名字背后的江湖!
查看>>
bzoj1098 1301
查看>>
老方块Oracle--数值类型性能考虑
查看>>
java Map按Key排序
查看>>
java中文和unicode编码相互转换(转)
查看>>
Bzoj3626 [LNOI2014]LCA
查看>>
ios开发之--UICollectionView的使用
查看>>
Eclipse插件安装
查看>>