python算数、逻辑运算,位运算
算术运算符
对变量和数组进行算术运算。
算术运算符:+,-,*,/,%
+:将连个或者多个数值相加
-:将两个数值相减
*:将两个数值相乘
/:将两个数值相除
%:取相除的余数
赋值运算符
将右边的值(计算结果)赋值给左边的变量
赋值运算符:=,+=,-=,*=,/=,%=,.=
=:赋值,将右边的值赋值给左边的变量
+=:将左边的变量的值加上右边的结果之后,再将值赋值给左边的变量
-=,*=,/=,%=,.=都是一样的效果
注意!!!“.”十分特殊,表示一种字符串连接运算
抑制错误,不让错误出现
错误抑制符:@
三元运算符
参与运算的表达式有三个
语法:表达式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算数、逻辑运算,位运算的更多相关文章
- Linux - Shell - 算数表达式 - 位运算
概述 shell 中基于 $(()) 的 位运算 背景 复习 shell 脚本 凑数吧 准备 环境 os centos7 1. 位运算 代码 #!/bin/bash # 位运算 arg1=2 arg2 ...
- python的按位运算
#coding=utf-8#"&"按位与运算,是指一个数字转化为二进制,然后这些二进制的数按位来进行与运算a=7&18print a'''首先将7转化为二进制,得到 ...
- python中的位运算
目录 1.判断奇偶数 2.交换两个数 3.找出没有重复的数 4.3的n次方 5. 找出不大于N的最大的2的幂指数 1.判断奇偶数 如果把n以二进制形式展示的话,我们只需要判断最后一个二进制位是1还是0 ...
- python数据类型和数据运算
数字 整型 包括正整数和负整数,和数学的表示方法一样.如:1.100.8008.-12等. 浮点型 浮点数字也称为小数,如果按照科学计数法表示时,小数点的位置是可变的.如:1.23x109==12.3 ...
- jave 逻辑运算 vs 位运算 + Python 逻辑运算 vs 位运算
JAVA中&&和&.||和|(短路与和逻辑与.短路或和逻辑或)的区别 博客分类: 面试题目 Java.netBlog 转自 :http://blog.csdn.net/web ...
- golang中算数运算、位运算、逻辑运算、赋值运算常用方法
package main import "fmt" var a = 21.0 var b = 5.0 //var c float64 func main() { Arithmeti ...
- C语言中的位运算和逻辑运算
这篇文章来自:http://blog.csdn.net/qp120291570/article/details/8708286 位运算 C语言中的位运算包括与(&),或(|),亦或(^),非( ...
- 剑指offer用位运算实现两个数相加,及python相关的位操作
题目:写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 代码: # -*- coding:utf-8 -*-class Solution: def Add(self ...
- 利用位运算进行a+b的计算(Java&&Python)
题目链接 需要用到的位运算操作:异或(^).与(&).右移(<<) 异或运算:又称不进位加法,a^b得到的结果为a与b相加,但是需要进位的地方不进位得到的结果 与运算:找出来a和b ...
随机推荐
- 【AMAD】beaker -- 用于session和缓存的WSGI中间件
简介 动机 作用 个人评分 简介 Beaker1是一个web session和通用缓存库,并且包含一个WSGI中间件可以用于你的web应用. 动机 Beaker是基于MyghtyUtils2(一个古老 ...
- HTTPS SSL TLS 相关理解
1,在理解 HTTPS SSL TLS 之前先对常用的加密方式进行一个简述: (1),对称加密: 采用一个密钥,对明文进行加密生成密文,相反采用此密钥可对加密后的密文进行解密还原成明文. 代表算法有, ...
- 神经网络中batch_size参数的含义及设置方法
本文作者Key,博客园主页:https://home.cnblogs.com/u/key1994/ 本内容为个人原创作品,转载请注明出处或联系:zhengzha16@163.com 在进行神经网络训练 ...
- python-day10(正式学习)
目录 字符编码 计算机基础 文本编辑器存取文件的原理 python解释器执行py文件的原理 python解释器与文本编辑的异同 字符编码介绍 字符编码的分类 乱码分析 总结 文件操作 三种基本操作 文 ...
- Ruby初见
一. 简介 Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License. 二 ...
- 如何让 node 运行 es6 模块文件,及其原理
如何让 node 运行 es6 模块文件,及其原理 最新版的 node 支持最新版 ECMAScript 几乎所有特性,但有一个特性却一直到现在都还没有支持,那就是从 ES2015 开始定义的模块化机 ...
- 数据库oracle一些操作(MiTAC)
oracle计算时间差函数: 两个Date类型字段:START_DATE,END_DATE,计算这两个日期的时间差(分别以天,小时,分钟,秒,毫秒): 天: ROUND(TO_NUMBER(END_D ...
- C# 下sqlite简单使用
1. 对数据库增, 删, 改 //数据库文件存储路径,(Environment.CurrentDirectory:为当前工作目录的完全路径) string dbPath = "Data So ...
- 06 基本数据结构 - 双端队列(Deque)
一.双端队列(Deque) - 概念:deque(也称为双端队列)是与队列类似的项的有序集合.它有两个端部,首部和尾部,并且项在集合中保持不变. - 特性:deque 特殊之处在于添加和删除项是非限制 ...
- input在获得焦点时外边框不变色
input:focus{ ouline:none; }