32位系统左移溢出,64位系统不溢出,能否在64位系统 保留32左溢的结果

WBOY
풀어 주다: 2016-06-23 13:46:44
원래의
1456명이 탐색했습니다.

echo 83661<<15;//32系统结果:-1553563648
로그인 후 복사


echo 83661<<15;//64系统结果:2741403648
로그인 후 복사


想在64位系统 中 保留 32的溢出结果,请问怎么弄,小弟想不明白,请教各位大大。


回复讨论(解决方案)

$n = 83661<<15;printf("有符号:%d 无符号:%u 二进制:%032b", $n, $n, $n);
로그인 후 복사
로그인 후 복사

有符号:-1553563648 无符号:2741403648 二进制:10100011011001101000000000000000

$n = 83661<<15;printf("有符号:%d 无符号:%u 二进制:%032b", $n, $n, $n);
로그인 후 복사
로그인 후 복사

有符号:-1553563648 无符号:2741403648 二进制:10100011011001101000000000000000



大大你好,在64机子执行了下。
$n = 83661<<15;printf("%d",$n);//结果还是2741403648
로그인 후 복사

你不明白吗?
他们是一回事

你不明白吗?
他们是一回事



大大,能否通过
$n = 83661<<15;
在64位机子上得到 这个值:-1553563648

echo  2741403648 - 0x100000000;
로그인 후 복사
로그인 후 복사
-1553563648

echo  2741403648 - 0x100000000;
로그인 후 복사
로그인 후 복사
-1553563648



谢谢大大,我的问题解决了。 
位移问题不是很熟悉,得补习下这方面知识了。

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿