• 算术运算符

对变量和数组进行算术运算。

算术运算符:+,-,*,/,%

+:将连个或者多个数值相加

-:将两个数值相减

*:将两个数值相乘

/:将两个数值相除

%:取相除的余数

  • 赋值运算符

将右边的值(计算结果)赋值给左边的变量

赋值运算符:=,+=,-=,*=,/=,%=,.=

=:赋值,将右边的值赋值给左边的变量

+=:将左边的变量的值加上右边的结果之后,再将值赋值给左边的变量

-=,*=,/=,%=,.=都是一样的效果

注意!!!“.”十分特殊,表示一种字符串连接运算

抑制错误,不让错误出现

错误抑制符:@

三元运算符

参与运算的表达式有三个

语法:表达式1 ? 表达式2 : 表达式3

如果表达式1为真,那么计算表达式2,否则计算表达式3

<?php
$wenheichouwa = "ishere";
$res = ($wenheichouwa=="ishere")?"喜欢小烤肠和小松鼠":"喜欢昌仔";
echo $res."<br/>";
$duwa = &$wenheichouwa;
$duwa = "nothere";
echo $res."<br/>";
echo $wenheichouwa."<br/>";
echo $duwa."<br/>";
$res = ($wenheichouwa=="ishere")?"喜欢小烤肠和小松鼠":"喜欢昌仔";
echo $res."<br/>";
?>
  • 自操作运算符

自己操作自己的运算符

自操作运算符:++,--

++:分为前置++和后置++,$a = $a + 1

前置++:++$a,

后置++:$a++

通常,在循环中,使用自运算比较,用户控制循环变量。

  • 字符串运算符

连接字符串

字符串运算符:.和.=

$a = ‘hello ’;

$b = ‘world’;

.:表示两个字符串连接,不会改变原来的变量本身

$c = $a . $b;

.=:将两个字符串连接起来后再赋值给左边的变量

$a .= $b <===========> $a = $a . $b;

  • 位运算符

针对系统硬盘上存储的位进行操作(实际操作是以字节为单位),位运算在计算过程中,每个位的操作返回的结果都是1或者0

位运算符:&,|,~,^,>>,<<

&:按位与,表示两个位都为1时,则返回1,否则返回0

|:按位或,表示两个有一个为1的时候,返回1,否则返回0

~:按位非,如果本身为0,则返回1,如果本身为1,则返回0

^:按位异或,如果两位不相同时,则返回1,如果两位相同则返回0

>>:按位右移,将整个字节向右移一位,左边空出来的使用0补充

<<:按位左移,将整个字节向左移一位,右边空出来的使用0补充

右移运算乃是原来的结果右移几位就除以几个2,然后向下取整,左移运算是原来的结果左移几位就乘以几个2;

<?php
$mynum=5;
echo "mynum左移5位的最终结果是".($mynum<<6)."<br/>";
$hisnum=6;
echo "hisnum右移2位的结果是".($hisnum>>2)."<br/>";
?>

  • 原码,反码,补码

原码----一个数的二进制形式

反码----一个数二进制按位取反

补码----一个数二进制按位取反并加1,一个正数的原码,反码,补码都相同

存储的实际情况----正数以原码的形式存储,负数以补码的形式存储。

以整数1为例,我们知道php的整型数占4个字节,每个字节占8位,正数的原码,反码,补码又都相同,正数的最高位是0,所以对于1有

#原码
#反码
#补码
负数反码。补码的错误操作形式

而对于-1来说,按照既定原则,最高位应该为1,所以他的原码形式为
#原码
反码就是各位取反
#反码
补码就是反码各位再加1
01111111 11111111 11111111 11111110
+
00000000 00000000 00000000 00000001
=
01111111 11111111 11111111 11111111
但是问题显然出现了,最终结果 01111111 11111111 11111111 11111111 明显是个正数!

所以对于负数来说,他的反码形式是 最高位不动,其余的位取反

正确姿势,负数的反码最高位不变,其他位取反

-1的反码

#反码11111111   

补码 = 反码+

+

=
补码为

php提供了几常见进制之间转换的函数

二进制转为其他进制

binoct();//转为八进制

bindec();//转为十进制

binhex();//转为十六进制

八进制转为其他进制

octbin();//转为二进制

octdec();//转为十进制

octhex();//转为十六进制

十进制转为其他进制

decbin();//转为二进制

decoct();//转为八进制

dechex();转为十六进制

十六进制转为其他进制

hexbin();转为二进制

hexoct();//转为八进制

hexdec();//转为十六进制

python算数、逻辑运算,位运算的更多相关文章

  1. Linux - Shell - 算数表达式 - 位运算

    概述 shell 中基于 $(()) 的 位运算 背景 复习 shell 脚本 凑数吧 准备 环境 os centos7 1. 位运算 代码 #!/bin/bash # 位运算 arg1=2 arg2 ...

  2. python的按位运算

    #coding=utf-8#"&"按位与运算,是指一个数字转化为二进制,然后这些二进制的数按位来进行与运算a=7&18print a'''首先将7转化为二进制,得到 ...

  3. python中的位运算

    目录 1.判断奇偶数 2.交换两个数 3.找出没有重复的数 4.3的n次方 5. 找出不大于N的最大的2的幂指数 1.判断奇偶数 如果把n以二进制形式展示的话,我们只需要判断最后一个二进制位是1还是0 ...

  4. python数据类型和数据运算

    数字 整型 包括正整数和负整数,和数学的表示方法一样.如:1.100.8008.-12等. 浮点型 浮点数字也称为小数,如果按照科学计数法表示时,小数点的位置是可变的.如:1.23x109==12.3 ...

  5. jave 逻辑运算 vs 位运算 + Python 逻辑运算 vs 位运算

    JAVA中&&和&.||和|(短路与和逻辑与.短路或和逻辑或)的区别 博客分类: 面试题目 Java.netBlog  转自 :http://blog.csdn.net/web ...

  6. golang中算数运算、位运算、逻辑运算、赋值运算常用方法

    package main import "fmt" var a = 21.0 var b = 5.0 //var c float64 func main() { Arithmeti ...

  7. C语言中的位运算和逻辑运算

    这篇文章来自:http://blog.csdn.net/qp120291570/article/details/8708286 位运算 C语言中的位运算包括与(&),或(|),亦或(^),非( ...

  8. 剑指offer用位运算实现两个数相加,及python相关的位操作

    题目:写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 代码: # -*- coding:utf-8 -*-class Solution:    def Add(self ...

  9. 利用位运算进行a+b的计算(Java&&Python)

    题目链接 需要用到的位运算操作:异或(^).与(&).右移(<<) 异或运算:又称不进位加法,a^b得到的结果为a与b相加,但是需要进位的地方不进位得到的结果 与运算:找出来a和b ...

随机推荐

  1. NOIp2015D1T3 斗地主【暴搜】

    题目传送门 刚开始读到题目的时候,非常懵逼,非常崩溃,写着写着呢,也有点崩溃,细节有点多. 这个做法呢,只能过掉官方数据,洛谷上好像有加强版,只能得$86$分,就没有管了. 大概说一下思路: 暴力搜索 ...

  2. 【Qt开发】QT对话框去掉帮助和关闭按钮 拦截QT关闭窗口的CloseEvent

    建了一个对话框,我不想把边框去掉,只想去掉关闭按钮, setWindowFlags(windowFlags()&~Qt::WindowCloseButtonHint&~Qt::Wind ...

  3. AIX弱口令解密

    1.看下我们的AIX弱口令如果是图中的这种那么我们就可以通过以下脚本来完成转换 2.打开kali给脚本丢进去自动生成下图这种格式,转换完成后保存通过john --w来跑. 脚本文件:保存为.bash ...

  4. 【STM32】串行通信原理

    (1)通信接口背景知识    并行通信:         --传输原理:数据各个位同时传输         --优点:速度快         --缺点:占用引脚资源多     串行通信:       ...

  5. __VA_ARGS__用法

    转载 自定义调试信息的输出 调试信息的输出方法有很多种,  例如直接用printf,  或者出错时使用perror, fprintf等将信息直接打印到终端上, 在Qt上面一般使用qDebug,而守护进 ...

  6. PTA(Basic Level)1032.挖掘机技术哪家强

    为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校. 输入格式: 输入在第 1 行给出不超过 105 的正整数 N,即参赛人数.随后 N ...

  7. Ubuntu - Ubuntu应用记录(1)

    1.发生dpkg status database is locked by another process 原因是包管理器没有正确关闭.需要重启计算机或者重新打开终端 输入: sudo rm /var ...

  8. Python学习【day02】- Python基础练习题

    #!/usr/bin/env python # -*- coding:utf8 -*- # 执行Python 脚本的两种方式 # 答:①在windows的cmd窗口下 > D:/Python/p ...

  9. 尝试自己搭一个简单的typescript运行环境

    开发typescript项目有一些现成的脚手架,比如:typescript-library-starter,它的配置齐全,更适合用在实际项目开发上.其实在学习阶段可以自己搭建一个简单的typescri ...

  10. 谷歌官方颜色库 MaterialDesignColor

    谷歌官方颜色库 MaterialDesignColor