位运算有什么用?

改一下昵称 2012-07-25 11:16:07
好吧这是个无聊的问题,似乎我从没见过PHP代码中出现这种操作符。
谁能举一个例子,在什么情况会用到 << >> ^ 这些位运算操作符,或者它们适合什么场景。
...全文
409 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
happypiggy2010 2012-07-26
  • 打赏
  • 举报
回复
一下子想不出。但是经常使用到。不过使用量不是很大。
baoxiaohua 2012-07-26
  • 打赏
  • 举报
回复
其实除了加密验证,状态权限奇偶验证等,好像想不出其他的用处!

比如变量换值php真的需要吗?可以节约内存空间吗?

一起坐等回答。
franzhong 2012-07-26
  • 打赏
  • 举报
回复
学习了~
北京不不 2012-07-26
  • 打赏
  • 举报
回复

<!--
这是底层的东西,在接口对接报文传输中用的比较多。如银行的8583报文。
//-->
yunprince 2012-07-26
  • 打赏
  • 举报
回复
以前读书学C、java的时候都几乎没用过
蹲坑看月亮 2012-07-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]


当你需要按位(而不是按字节)操作数据时才会用到
PHP code
function utf8_unicode($c, $type=false) {
switch(strlen($c)) {
case 1:
if($type) return ord($c);
re……
[/Quote]
位运算是最最最底层的操作,大多编译型语言都不直接提供,恩,看你想往哪方面发展
森之树 2012-07-26
  • 打赏
  • 举报
回复
又涨见识了
MrCeffoo 2012-07-26
  • 打赏
  • 举报
回复
楼上的强
xuzuning 2012-07-26
  • 打赏
  • 举报
回复
位运算是最最最底层的操作,大多编译型语言都不直接提供
当你需要按位(而不是按字节)操作数据时才会用到
  function utf8_unicode($c, $type=false) {
switch(strlen($c)) {
case 1:
if($type) return ord($c);
return $c;
case 2:
$n = (ord($c[0]) & 0x3f) << 6;
$n += ord($c[1]) & 0x3f;
break;
case 3:
$n = (ord($c[0]) & 0x1f) << 12;
$n += (ord($c[1]) & 0x3f) << 6;
$n += ord($c[2]) & 0x3f;
break;
case 4:
$n = (ord($c[0]) & 0x0f) << 18;
$n += (ord($c[1]) & 0x3f) << 12;
$n += (ord($c[2]) & 0x3f) << 6;
$n += ord($c[3]) & 0x3f;
break;
}
return $type ? $n : pack('n', $n);
}

function unicode_utf8($c) {
if(! is_numeric($c)) {
$c = hexdec(bin2hex($c));
}
$str="";
if ($c < 0x80) {
$str .= $c;
} else if ($c < 0x800) {
$str .= chr(0xC0 | $c>>6);
$str .= chr(0x80 | $c & 0x3F);
} else if ($c < 0x10000) {
$str .= chr(0xE0 | $c>>12);
$str .= chr(0x80 | $c>>6 & 0x3F);
$str .= chr(0x80 | $c & 0x3F);
} else if ($c < 0x200000) {
$str .= chr(0xF0 | $c>>18);
$str .= chr(0x80 | $c>>12 & 0x3F);
$str .= chr(0x80 | $c>>6 & 0x3F);
$str .= chr(0x80 | $c & 0x3F);
}
return $str;
}

等价的 php 语句
iconv('utf-8', 'ucs-2', $s)
iconv('ucs-2', 'utf-8', $s)

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧