作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我在 mt_rand(0, 0xffff)
中看到一些使用 0xffff 的 PHP 脚本。我执行 echo 0xffff;
,结果为 65535。使用这个0xffff有什么意义吗?还有那是什么?
最佳答案
十六进制表示法0xffff
清楚地表明数字中的所有位都是 1
. 65535
是相同的数字,但二进制表示并不那么明显。这只是一个计数。所以这种写数字的方式有不同的语义。
比如你要声明某个变量的最大值必须是65535,那么最好这样声明:
$max_value = 65535;
因为这使得人们很容易将它与其他值进行比较,例如 65500 ( < $max_value
) 或 66000 ( > $max_value
)。
位域则相反。
$default_state = 65535;
这并没有告诉我所有位都是一个(实际上它们是一个)。
$default_state = 0xFFFF;
这样做:每个十六进制数字代表四个位,一个 F
表示四个 1 位。因此0xFFFF
是0b1111111111111111
二进制。
当程序员想要明确表示二进制表示很重要,可能比精确的数值更重要时,会使用十六进制表示法。
关于php - 为什么在 65535 上使用 0xffff,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13137151/
以下代码行与 Visual Studio 2013 一起运行: wchar_t test[] = L"\xffff"; wchar_t buf[100]; int ret = swprintf(
我是一名优秀的程序员,十分优秀!