小编use*_*939的帖子

整数字符串比较相等(PHP bug?)

我正在比较两个字符串:

<?php

$Str1 = '111122223333444455556666';
$Str2 = '111122223333444455557777';

if($Str1 != $Str2){
    // Do something
} else {
    // Do something else
}

?>
Run Code Online (Sandbox Code Playgroud)

显然,$ Str1与$ Str2不同,但仍然总是执行else-block.我知道我应该在这里使用===!==比较,但我想知道为什么(基本上)我尝试的任何其他值实际上评估它的预期方式.

我还在文档"如果字符串不包含任何字符'.','e'或'E'并且数值适合整数类型限制(由PHP_INT_MAX定义)中读到这个,字符串将是评估为一个整数.",所以我猜它不应低于或等于PHP_INT_MAX的值(这远远小于我上面评估的字符串) - 假设这是他们的意思"适合".那么为什么上面的字符串被评估为相同?它可能是一个PHP错误还是我缺少的东西?


我从昨天起使用PHP版本5.3.8,来自PHP 5.3.6.在Windows XP上运行.

php

7
推荐指数
1
解决办法
1933
查看次数

将签名的IEEE 754浮点数转换为十六进制表示

我使用的Lua,前端是不幸的是过时的,所以我坚持与5.1版本在这里,这意味着bit32库是遥不可及的(这我可能已经习惯了这种转换).

所以我想知道是否有人知道我可以实现浮点到二进制(数字)函数的方法,或者更好的是浮点到十六进制.到目前为止,我能够提出的最好的是十进制到二进制/十六进制函数......

floating-point lua lua-5.1 floating-point-conversion

6
推荐指数
1
解决办法
2459
查看次数

以编程方式更改和刷新图标(无需重新启动)

当我手动替换图标时(即不从资源管理器中的"文件夹选项"窗口),图标不会更新.例如,如果我执行此批处理代码:

REG ADD HKCR\testfile\DefaultIcon /ve /d "C:\test.ico,0" /f
Run Code Online (Sandbox Code Playgroud)

图标显示在"文件夹选项"的列表中应该显示,但图标不会在桌面或资源管理器中更新.

如果我只是点击任何文件类型的"更改图标"按钮并退出"文件夹选项"窗口,则会更新图标.但据我所知,这不能通过批处理或VBS完成.

重新启动explorer.exe可以正常工作,但如果我这样做,任务栏中的应用程序选项卡由于某种原因变得有问题(例如:当应用程序最大化时,我不能只是左键单击任务栏中的选项卡以最小化它 - 我必须直接点击它并点击最小化...).更不用说,如果我这样做,所有打开的资源管理器窗口都将关闭,这有点麻烦.

我还有一个TuneUp Utilities的副本,它有一个重新加载图标缓存的选项,这确实像预期的那样工作.但是再一次,我无法通过批处理或VBS访问此工具.它不会重新启动explorer.exe或删除任何文件(如某些解决方案).我敢肯定的这一点,因为我没有iconcache.db文件的任何地方我的操作系统驱动器上.

我也尝试通过VBS添加注册表项,但这没有帮助.

欢迎任何批处理或VBScript解决方案!

vbscript windows-xp batch-file

5
推荐指数
1
解决办法
2053
查看次数

整数溢出测试运算符?(+)

这个问题可能只是另一种不正确地解释操作员的情况.但不久之前,我看到有人发推文关于一个运营商的信息,据称可以用来检查C中的整数溢出.即&+(&符号加)运算符,它可以像这样使用:

#include <stdio.h>
#include <stdint.h>

int main()
{
    uint32_t x, y;

    x = 0xFFFFFFFF;
    y = 1;

    if (x &+ y) {
        printf("Integer overflow!\n");
    } else {
        printf("No overflow\n");
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

它看起来确实像人们期望的那样工作,GCC 6在使用这些参数进行编译时不会给我任何警告或错误: gcc -Wall -Wextra -Werror of.c

但奇怪的是,我还没有找到关于这个运算符的任何文档,我从来没有看到它在任何地方使用过.有人可以解释一下这是如何工作的?

c integer integer-overflow

3
推荐指数
1
解决办法
110
查看次数