php中位运算的应用:货品的状态
效果如下图:
分析:用一个整数的二进制可以记录32状态
00000000 00000000 00000000 00000000 >>=0
从右往左保存这三个的状态:
精品选中,第一位设置为1: 00000000 00000000 00000000 00000001 >>=1
新品选中,第一位设置为1: 00000000 00000000 00000000 00000010 >>=2
热销选中,第一位设置为1: 00000000 00000000 00000000 00000100 >>=4
定义一个初始状态就是都不选中的:$status=0;
这三状态都选中是:00000000 00000000 00000000 00000111
$status=0;//初始状态
if($_SERVER['REQUEST_METHOD']=='POST'){
$is_best=isset($_POST['is_best'])?$_POST['is_best']:0;
$is_new=isset($_POST['is_new'])?$_POST['is_new']:0;
$is_hot=isset($_POST['is_hot'])?$_POST['is_hot']:0;
$status=$status|$is_best|$is_new|$is_hot;
}
?>
<form action="<?php $_SERVER['PHP_SELF'];?>" method="post">
商品状态:<input type="checkbox" name="is_best" value="1" <?php echo $status&1?'checked':''; ?> />精品
<input type="checkbox" name="is_new" value="2" <?php echo $status&2?'checked':''; ?> />新品
<input type="checkbox" name="is_hot" value="4" <?php echo $status&4?'checked':''; ?> />热销
<br/>
<input type="submit" value="提交" />
</form>
<?php echo decbin($status); ?>
<br/> 精品是否:<?php echo $status&1?'是':'否'; ?><br/>
新品是否:<?php echo $status&2?'是':'否'; ?><br/>
热销是否:<?php echo $status&4?'是':'否'; ?>
php中位运算的应用:货品的状态的更多相关文章
- js中位运算的运用
原文:js中位运算的运用 我们可能很少在编程中用位运算,如果没深入学习,可能也很难理解.平时的数值运算,其实是要先转换成二进制再进行运算的,而位运算就是直接进行二进制运算,所以位运算的执行效率肯定是更 ...
- LeetCode解题中位运算的运用
位运算是我最近才开始重视的东西,因为在LeetCode上面刷题的时候发现很多题目使用位运算会快很多.位运算的使用包含着许多技巧(详细可以参考http://blog.csdn.net/zmazon/ar ...
- java中位运算
1byte(字节)=8bit(比特) 1 0 0 0 0 0 0 0 1 2进制的1的原码 反码 补码 0 0 0 0 0 0 0 0 2进制的0的原码 反码 补码 -1 1 0 0 0 0 ...
- C++中位运算
简介 1 位逻辑运算符: & (位 “与”) and ----------------- 2个都为1 才是1-----------0^0 = 0 , 0^1 = 0, 1^0 = 0 ...
- java中位运算和移位运算详解
一.位运算 (1)按 位 与 & 如果两个相应的二进制形式的对应的位数都为1,则结果为1,记为同1为1,否则为0.首先我们看一下对正数的运算 分别看一下正数和负数的具体运算步骤 ...
- java中位运算^,&,<<,>>,<<<,>>>总结
1.^(亦或运算) ,针对二进制,相同的为0,不同的为1 public static void main(String[] args) { System.out.println("2^3运算 ...
- C语言中位运算异或“∧”的作用
1.概念异或运算符"∧"也称XOR运算符.它的规则是若参加运算的两个二进位同号,则结果为0(假):异号则为1(真).即 0∧0=0,0∧1=1, 1^0=1,1∧1=0.运算 ...
- go中位运算
左移右移 const ( // 将 1 左移 100 位来创建一个非常大的数字 // 即这个数的二进制是 1 后面跟着 100 个 0 Big = 1 << 100 // 再往右移 99 ...
- javascript中的位运算,
罗浮宫群里又有讨论位运算符号|了,做过一段时间php,数据库保存布尔值数据经常用到,比如100110 就表明了六个属性的是与否,极大减少了数据量..] ECMAScript 中位运算跟其他语言一样的. ...
随机推荐
- cocos2d-x 动画特效集合
转自:http://www.cnblogs.com/linux-ios/archive/2013/04/09/3009292.html 备用 bool HelloWorld::init() { /// ...
- eclipse+webservice开发实例
1.參考文献: 1.利用Java编写简单的WebService实例 http://nopainnogain.iteye.com/blog/791525 2.Axis2与Eclipse整合开发Web ...
- el表达式跟ognl表达式的区别(转)
EL表达式: >>单纯在jsp页面中出现,是在四个作用域中取值,page,request,session,application.>>如果在struts环境中,它除了有在上面的 ...
- 信号之abort函数
abort函数的功能是使异常程序终止. #include <stdlib.h> void abort(void); 此函数不返回 此函数将SIGABRT信号发送给调用进程(进程不应忽略此信 ...
- android startActivityForResult(Intent intent, int requestCode) 整理与总结! .
假设有两个Activity,主界面A,功能界面B,由A启动B,并传数据给B,B在经过处理后把数据传回给A. 先是A传B: Bundle bundle = new Bundle();bundle.put ...
- java_泛型(设置通配符下限)
package ming; import java.util.ArrayList; import java.util.Collection; import java.util.List; /* * 返 ...
- 版本和API Level对照表
版本和API Level对照表 Code name Version API level (no code name) 1.0 API level 1 (no code name) 1.1 API le ...
- 批量除去php页面的bom,页面meta跑到body中就是这个问题
<?php if (isset($_GET['dir'])){ //设置文件目录 $basedir=$_GET['dir']; }else{ $basedir = '.'; } $auto = ...
- Oracle取得中文拼音首字母函数
CREATE ) ; V_RETURN ) ; FUNCTION F_NLSSORT (P_WORD IN VARCHAR2) RETURN VARCHAR2 AS BEGIN RETURN NLSS ...
- javascript笔记03:易犯错的比较运算
1.比较两个值是否相等的常见运算: " //false == "" //true == " //true false == "false" ...