请问php中$c=(-3)^3; echo $c;会输出多少?为啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问php中$c=(-3)^3; echo $c;会输出多少?为啥?相关的知识,希望对你有一定的参考价值。
最i详细越好
php中$c=(-3)^3; echo $c;输出-2.因为^在php中是异或运算符,也就是说在二进制中1^1=0,0^0=0,1^0=1,0^1=1
我们用一个字节(即八位二进制数)为例:
3表示为二进制数是00000011
3的二进制反码是11111100
3的二进制补码是11111101(是3二进制数00000011的反码加1)
-3表示为二进制数是11111101(是3二进制数00000011的补码)
-3^3表示为二进制数的计算方法是:
00000011 (3)
11111101 (-3)
=11111110 (-2)
所以php中$c=(-3)^3; echo $c;输出-2. 参考技术A (-3)^3 == -2
首先“^”是异或运算符
3 的二进制码:00000000 00000000 00000000 00000011
-3的二进制码:11111111 11111111 11111111 11111101
异或"同0异1" : 11111111 11111111 11111111 11111110 ===>其十进制值为-2
注:计算机中负数以其正值的补码形式表达。
补码=反码+1追问
11111111 11111111 11111111 11111110 请问这个是怎么推算出等于-2的,我就在这里卡住了
追答二进制的负数转化为十进制:符号位不动,其余全部取反,然后换算成十进制之后+1,最后加负号
参考:http://www.techxu.com/codestudy/binary-decimal.html
请问那我输出的怎么是-2呢?
追答他是对的,我疏忽了一个重要关键,不要被我误导,二进制在计算时是以补码形式做的,现在仔细听我说3的原码为000011(正数补码为它自己),-3源码为100011,-3补码就变为111101,因此此时开始做计算:000011和111101,记得符号位不在计算范围(在汇编中可以把它当符号位也可以做另一种计算),结果就为11110,最后补码变原码先减一得11101,在取反得10010(因为在这里你把最高位作为符号位),这时就是正确结果-2,这都是基础,上帝啊我竟然犯了这样糊涂的事,抱歉
php中echo的使用方法有哪些?
php中echo的使用:如echo "1234";我看到有的资料上写成这样:echo 1234;
echo '1234';一会双引号 一会单引号 一会不要引号 我被弄晕了 请问好心人这里面到底有什么规则???
echo 是一个语言结构,有无括号均可使用:echo 或 echo()。
显示字符串
下面的例子展示如何用 echo 命令来显示不同的字符串(同时请注意字符串中能包含 HTML 标记):
<?phpecho "<h2>PHP 很有趣!</h2>";
echo "Hello world!<br>";
echo "我计划学习 PHP!<br>";
echo "这段话", "由", "多个", "字符串", "串接而成。";
?>
下面的例子展示如何用 echo 命令来显示字符串和变量:
<?php$txt1="Learn PHP";
$txt2="W3School.com.cn";
$cars=array("Volvo","BMW","SAAB");
echo $txt1;
echo "<br>";
echo "Study PHP at $txt2";
echo "<br>";
echo "My car is a $cars[0]";
?> 参考技术A 呵呵。。这是因为整数型的值。可以直接输出。像数字这类都可以不加引号直接输出。。
输出变量也可以不用加任何的引号。直接 echo $a; 即可
要输出字符,就一定要加引号了。比如 echo "你好";
关于单引号和双引号,区别只有一个,单引号里的变量和运算符不会被解释。原样输出。而双引号里的会解释为相应的内容。。例如
$a=1;
echo "$a"; //输出 1 变量被解释了。
echo '$a'; //输出 $a 变量没有被解释。
如果你想把字符和变量一起输出,就要用双引号。如果只是输出纯文本内容,可以使用单引号。。例如:
echo "<font color=red>$a</font>";
echo '<font color=red>你好</font>';本回答被提问者采纳 参考技术B 没有什么规则,个人的编码习惯而已。
类型为数字的可以直接echo 123;当然也可以echo ‘123’或
echo “123”;
类型为纯字符串的echo ‘str’;
类型中含有变量的 :
$str = 'ssss';
①echo "xxxx$str";
输出:xxxxssss
②echo ’xxxx‘.$str;
输出:xxxxssss
③echo ’xxxx$str‘;
输出:xxxx$str
说明:单引号内只认为是字符串,不会识别变量,双引号内,会识别变量。
④echo "xxxx$str=yyy";
输出:xxxxssss=yyy
说明:双引号内是不做运算的。 参考技术C 只是一个标记
php中heredoc的使用方法
1.以<<<End开始标记开始,以End结束标记结束,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。开始标记和开始标记相同,比如常用大写的EOT、EOD、EOF来表示,但是不只限于那几个,只要保证开始标记和结束标记不在正文中出现即可。
2.位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在heredoc中,变量不需要用连接符.或,来拼接,如下:$v=2;
$a= <<<EOF //EOF是一种标记,STR、EOD、EOT都行,结束和开始必须一致。
"abc"$v
"123"
EOF;
echo $a;
//结果连同双引号一起输出:"abc"2 "123"3.heredoc常用在输出包含大量HTML语法d文档的时候。 参考技术D 最好加上引号,这个最严谨的写法
以上是关于请问php中$c=(-3)^3; echo $c;会输出多少?为啥?的主要内容,如果未能解决你的问题,请参考以下文章
请问一下,知道两个数,随机输出其中一个,用PHP可以做到吗?