运算符的问题

问题描述

一个数组里有2,4,8,16,32,64,128,256全部是2的幂是代表权限的一个用户的权限值是144我想请问他有那些权限144&数组里面的值全部大于0就代表他有所有的权限?急

解决方案

解决方案二:
对,就是这样
解决方案三:
其实方法很多,比如从大到小判断大小,然后减也可以如果大于256,就一定有这个权限,否则没有如果大于256,则减去256,继续判断是否大于128,……
解决方案四:
144=10010000(二进制)说明他有16和128的权限
解决方案五:
二楼和三楼的意思好像不一样啊
解决方案六:
引用4楼SSXYC的回复:

二楼和三楼的意思好像不一样啊

其实是一样的
解决方案七:
用位与运算啊与128与==128则有128的权限
解决方案八:
传统方法List<int>getPro(int[]array,intnum){List<int>list=newList<int>();for(inti=array.Length-1;i>=0;i--){if(num<array[i])continue;list.Add(array[i]);num=num-array[i];if(num==0)break;}returnlist;}

解决方案九:
按二进制操作List<int>getPro(int[]array,intnum){List<int>list=newList<int>();foreach(intiinarray){if((num&i)==i)list.Add(i);}returnlist;}

时间: 2024-10-03 22:00:13

运算符的问题的相关文章

c++-C++ list赋值和类的运算符重载

问题描述 C++ list赋值和类的运算符重载 刚刚发现了个问题,一直卡着我 class CA { public: CA(){} ~CA(){} public: VOID operator = ( CA& msg ) { dwvalue = msg.dwvalue; } private: DWORD dwvalue; }; VOID Fuck1( OUT list& bb ) { list< CA > aa; CA a; CA b; aa.push_back(a); aa.pu

link能不能重载==运算符?如果我想让字符串忽略大小写,怎么写?

问题描述 link能不能重载==运算符?如果我想让字符串忽略大小写,怎么写? link能不能重载==运算符?如果我想让字符串忽略大小写,怎么写? 解决方案 (1)不能,你需要重写Equals方法 (2)这个简单,比较的双方都转换成大写或者小写中的一种就可以了.toupper tolower

matrix-C++类中包含数组,如何重载运算符,第一次进入,还没有c币,求大神帮忙了,感激不尽

问题描述 C++类中包含数组,如何重载运算符,第一次进入,还没有c币,求大神帮忙了,感激不尽 这是头文件 #include #ifndef MATRIX_H_ #define MATRIX_H_ class matrix { private: double a[20][20]; int m,n; public: matrix(); matrix(const matrix&a); ~matrix(); matrix operator=(const matrix&a); friend void

C++重载运算符“&amp;amp;lt;&amp;amp;lt;”和“&amp;amp;gt;&amp;amp;gt;”出现错误

问题描述 C++重载运算符"<<"和">>"出现错误 主函数中用<<>时出现错误no operator defined which takes a right-hand operand of type 'class vsctor' (or there is no acceptable conversion) #includeusing namespace std;class vsctor{public: vsctor(int

js运算符单竖杠“|”的用法和作用是什么?

 js运算符单竖杠""的作用   很多朋友都对双竖杠"",了如指掌,因为这个经常用到.但是大家知道单竖杠吗?今天有个网友QQ问我,我的 javascript实用技巧,js小知识 , 这篇文章里面,js整数的操作运用了单竖杠,问我单竖杠是啥意思?   我看了一下之前的那篇文章,只写了用法,但是并没有解释.好吧,我现在就给大家简单的介绍一下:   之前文章,在js整数操作的时候,相当于去除小数点,parseInt.在正数的时候相当于Math.floor(),负数的时候相

javascript运算符整理

说起运算符,基本上各类编程语言中都会涉及,使用方法大同小异.今天在这里以javascript做简单的整理.   总得来说运算符还是比较的多,大致可以分为以下几种类型: 一元运算符 位运算符 布尔运算符 乘性运算符 加性运算符 关系运算符 等性运算符 条件运算符 赋值运算符 逗号运算符 可以说只要学习过变成语言对这些运算符应该是并不陌生的,只要有逻辑或者是计算都会用到上面的运算符,之前我也是比较零散的使用过,从来没有系统的学习和整理过这些运算符到底怎么使用?之间有什么区别和联系?有什么使用上的技巧

乘法运算符 (*)

运算   两个表达式的值相乘. result = number1*number2 参数 result 任何变量. number1 任何表达式. number2 任何表达式. 要求 版本 1 请参阅 *= 运算符 | 运算符优先级 | 运算符总结

取余运算符 (%)

运算   一个表达式的值除以另一个表达式的值,返回余数. result = number1 % number2 参数 result 任何变量. number1 任何数值表达式. number2 任何数值表达式. 说明 取余(或余数)运算符用 number1 除以 number2 (把浮点数四舍五入为整数),然后只返回余数作为 result.例如,在下面的表达式中,A (即 result)等于 5. A = 19 % 6.7 要求 版本 1 请参阅 %= 运算符 | 运算符优先级 | 运算符总结

逻辑“或”运算符 (||)

运算   对两个表达式执行逻辑"或". result = expression1 || expression2 参数 result 任何变量. expression1 任何表达式. expression2 任何表达式. 说明 如果两个表达式中有一个或两个等于 True,则 result 是 True.下面的表举例说明了 result 是如何被决定的: 如果 expression1 是 且 expression2 是 则 result 是 True True True True Fals

逻辑“非”运算符 (!)

运算 一个表达式执行逻辑非.result = !expression 参数 result 任何变量. expression 任何表达式. 说明 下面的表举例说明了 result 是如何决定的. 如果 expression 是 则 result 是 True False False True 所有一元运算符,如 ! 运算符,按照下面的规则来求表达式的值: 如果应用于 undefined 或 null 表达式,则会产生一个运行时错误. 对象被转换为字符串. 如果可能,字符串被转换为数值.否则会产生一