8个二进制数组成的(例00000000),
一个字节由8个位组成,那么就有32个二进制数。
原码:最高位 用0表示正数,1表示负数
+7 00000111
-7 10000111
反码:一个数如果为正,则它的反码与原码相同;
一个数如果为负,则符号位为1,其余各位是对原码取反;
+7 00000111
-7 11111000
+0 00000000
-0 11111111
补码:一个数如果为正,则它的补码与反码与原码相同
一个数如果为负,则它的补码=反码+1,去掉最高位的溢出位
-7 原码 10000111 反码11111000
+1
补码11111001
已知一个负数的补码,把它转换为十进制数。
1.先对各位取反
2.将其转换为十进制数
3.加上负号,再减去1。
例:补码11111010
取反00000101
4+1=5
-5-1=-6
位运算符:
& 按位与 |按位或 ^按位异或 ~按位取反
例: 按位与 01101101
&00110111
00100101
结论:只有1 1为1。
按位或 01101101
|00110111
01111111
结论:只有0 0为0。
按位异或 01101101
^00110111
01011010
结论:只有1 0或0 1时为1。(也可以理解为处于不同状态为1(真))
按位取反 ~00110111
11001000
结论:将0变1,1变0
移位运算符:
左移:<< 带符号右移:>> 无符号右移:>>>
例:数 x x<<2 x>>2 x>>>2
17 00010001 01000100 00000100 00000100
-17 11101111 10111100 11111011 00111011
结论:正数左右移动都补0,负数左移补0,带符号右移补1,不带符号补0
*/
//其他运算符的运用
$a=10;
$b=$a>5 ? $a : 5;//三元运算符,如果成立$b=$a否则$b=5
echo $b;
//用``来执行操作系统shell命令
$str=`ipconfig /all`;
echo ''<pre>'';
echo $str;
echo ''</pre>'';
?>