PHP关于按位取反结果的推导过程
2015-08-14 11:45
609 查看
哎呀几年过去,都快把大学学的计算机导论的知识给忘完了,现在来回顾一下按位去反的流程:
<?php /** 首先来补充一下基础知识: php中有4个位运算,分别是&与 |或 ^异或 ~取反 & 两位全为1,结果为1 | 有一位为1,结果为1 ^ 一个为0,一个为1,结果为1 ~ 取反0->1,1->0 1.二进制的最高位是符号位,0表示正数,1表示负数。 2.正数的原码,反码,补码都一样。 3.负数的反码=它的原码符号位不变,其它位取反(0->1,1->0)。 4.负数的补码=它的反码+1。 5.0的反码,补码都是0. 6.php没有无符号数,换言之,php中的数都是有符号的。 7.在计算机运算的时候,都是以补码的方式来运算的,那么运算完后得到的结果也是某个数的补码 **/ echo ~8;//-9 那么这个-9是怎么得来的呢? 8的原码、反码、补码都是 : 00000000 00000000 00000000 00001000 取反(即~8)后得到: 11111111 11111111 11111111 11110111 //第一位是符号位,1代表负号,表示这是一个负数;记住运算和运算结果都是用补码表示的,这是某个数的补码,我们还需要推导反码和原码 反码=补码-1,即: 11111111 11111111 11111111 11110110 原码(符号位不变,其他位取反): 10000000 00000000 00000000 00001001 所以结果是:-9 ?>
相关文章推荐
- PHP_OS判断操作系统
- 【IDE】module 未指定output path问题解决办法
- PHP识别二维码功能,php-zbarcode 安装
- PHP中对mysql预编译查询语句的一个封装
- ThinkPHP开发框架函数详解:C方法
- ZendStudio快捷键
- 一个简单示例来演示用PHP访问表单变量
- php中文字符串翻转
- PHP获取curl的错误
- PHPExcel用法(详细)
- PHP,如何判断mysql语句是否有返回值、是否有内容
- PHP数组处理函数的使用array_push(一)
- PHP_网上开源商城系统
- PHP SYSTEM WARNING: 'date_default_timezone_get()'
- PHP的继承方法如何获取子类名?get_class() 和 get_called_class()
- PHP中include_path
- Crazyflie笔记五: CRTP 实时通信协议(一)(转)
- PHPExcel读取Excel文件的实现代码
- 从 PHP 代码分析 PHP 的 GC(垃圾回收) 机制
- php学习-07运算符