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 中位运算跟其他语言一样的. ...
随机推荐
- 7Zip 来备份重要文件(夹)
body { font-family: 宋体,Georgia,Helvetica,Arial,sans-serif,宋体,serif; font-size: 10.5pt; line-height: ...
- Struts1中ActionForward的技巧介绍
ActionForward是做什么的?他是用来封装转发和重定向路径的. 在struts- config.xml中<forward name="error" path=&quo ...
- Opencv cvCircle函数
cvCircle(CvArr* img, CvPoint center, int radius, CvScalar color, int thickness=1, int lineType=8, in ...
- [Effective C++ --018]让接口容易被正确使用,不易被误用
□第一节 什么是接口?什么是接口?百度百科的解释:两个不同系统(或子程序)交接并通过它彼此作用的部分.接口的概念贯穿于整个软件开发过程中,本文讨论的接口概念仅局限于以C++实现的class,funct ...
- C# 之 Word光标移动 GoTo 方法
对于 Document 或 Range对象:返回一个 Range对象,该对象代表指定项(例如页.书签或域)的开始位置. 对于 Selection对象:将插入点移至指定项前面的字符位置,并返回一个 Ra ...
- Java基础知识强化之网络编程笔记20:Android网络通信之 Android常用OAuth登录和分享
1. 申请百度开发者账号及百度OAuth简介. (1)申请开发者账号: http://developer.baidu.com/ (2)创建项目: http://developer.baidu.com ...
- 新闻头条应用源码ios版
<ignore_js_op> 源码下载:http://code.662p.com/view/13343.html 作者ymcao,源码TopNewsIOS,新闻头条IOS ...
- PHP在ubuntu中编译安装
关于怎么获取php源码和解压就不再说了. 编译的参数为: ./configure --prefix=/opt/php --with-bz2 --with-mcrypt --with-mhash --w ...
- logstash-input-file 参数说明
参数 close_older close_older: # This has different implications depending on if a file is being tailed ...
- 使用Zencoding的升级版Emmet
最近vim7.4也更新了,zengcoding好像停止了更新,更换成emmet了,使用还是和Zencoding一样. emmet的地址在http://emmet.io/ 支持很多的编辑器和IDE. ...