草庐IT

javascript - 如何在不溢出 RAM 的情况下为非常大的文件生成校验和并在 Javascript 中转换为 64 位?

问题:如何正确生成独立于浏览器的唯一、一致的校验和?另外,我想将SHA256/MD5校验和字符串转换为64位。如何在不需要大量RAM的情况下正确读取文件来生成校验和?即我们如何在不影响RAM的情况下处理1GB的文件例如Isitpossibletoreadafilewithoutloadingitintomemory?(见答案)Thisproject看起来很有希望,但也无法实现。我的意图是以XMB的block逐步/增量地生成校验和。这可能有助于避免一次使用过多的RAM。以下是代码,它没有按预期工作:letSIZE_CHECKSUM=10*Math.pow(1024,2);//10MB;B

javascript - 按位交叉两个整数

我目前正在尝试实现一个非常简单的遗传算法示例。有一次,你必须用两个数字(parent)做一个“交叉”(生物学)来得到一个“child”。您可以在此处找到对Cross-Over的解释:Howto"crossover"twostrings(1234&abcd->12cd&ab34)(第二个例子,更简单的“一点”交叉是我正在尝试做的。)染色体(parent和child)是数字,但“交叉”将是位操作。我找到了一个“染色体”的解决方案,如下所示:向右移动X位(>>>运算符)然后再次将位移动X个位置,但这次向左移动(运算符)所以这将保留其中一条染色体的末尾并用0填充开头。但我真的不知道如何解决另一

javascript - 为什么这个按位运算在 Javascript 中失败

有人在我得到的javascript中进行按位运算时请阐明这一点:65527|34359738368=>65527是否可以在javascript中处理这个问题?从mysql命令行:select65527|34359738368;+-------------------+|65527|34359738368|+-------------------+|34359803895|+-------------------+更重要的是它小于2^36select(65527|34359738368)我从这篇SOQ中读到的内容javascript中的int是否支持最大2^53值。我可能遗漏了某事

javascript - 有什么办法可以在它的 64 位浮点 IEEE754 表示中看到一个数字

Javascript根据spec将所有数字存储为double64位格式IEEE754值:TheNumbertypehasexactly18437736874454810627(thatis,264−253+3)values,representingthedouble-precision64-bitformatIEEE754valuesasspecifiedintheIEEEStandardforBinaryFloating-PointArithmetic有没有办法在Javascript中查看此表单中的数字? 最佳答案 您可以使用类型

javascript - 最多 3 位数字,最多 3 位小数

看来我又被一个简单的正则表达式卡住了。我想要什么:1到999之间的数字可选:逗号、符号如果输入逗号,最少1位小数,最多3位小数点应该是presebt。Allowed:100999,0999,999999,99Disallowed:-10999,999,9999这是我目前所拥有的:^[0-9]{1,3}(?:\,[0-9]{1,3})?$有什么建议吗? 最佳答案 你可以使用这个正则表达式:/^[1-9]\d{0,2}(?:\,\d{1,3})?$/RegExDemo与OP的正则表达式的主要区别是使用[1-9]匹配正则表达式其余部分之前

javascript - 如何在 JavaScript 中模拟 64 位(无符号)整数的按位旋转?

我需要在JavaScript中执行64位整数的循环左移。然而:JavaScript数字是双数当您从>和>>>以及~和所有的位操作开始时,JavaScript将它们转换为32位有符号整数。然后当你完成时它又回到double。我想。我不想要这个标志。而且我绝对不想要小数位。但我确实想要64位。那么,如何执行64位值的按位左旋? 最佳答案 将您的64位数字保留为单独的高分区和低分区。当Nhi_rot=((hi>>(32-N)))&(0xFFFFFFFF)lo_rot=((lo>>(32-N)))&(0xFFFFFFFF)如果N>=32,则

javascript - 如何将 64 位整数拆分为两个 32 位整数

我想将一个64位整数拆分为两个32位整数:varbigInt=0xffffff;varhighInt=bigInt>>8//getthehighbits0xfffvarlowInt=bigInt//cutofthefirstpart(with&)?console.log(highInt);//0xfffconsole.log(lowInt);//0xfff//setthemtogetheragainvarreBigInt=(highInt不幸的是,无论是获取highInt还是获取lowInt都不起作用...有人可以告诉我如何使用按位运算符吗?问候 最佳答案

Javascript window.open 在 Win7 x64 上的 32 位 IE8 中返回 null

我已经阅读了有关此主题的相关问题,但尚未找到解决此问题的方法。我有一个简单的javascript函数,它在单击链接时调用window.open:varnewwindow;functionpop(url){newwindow=window.open(url,'','height=500,width=532');if(window.focus){newwindow.focus();}}这在Chrome、Firefox上工作正常,甚至在64位IE8上工作。但是,当我在32位IE8上尝试这个时,我得到一个错误,提示'newwindow'为空或不是对象.关于为什么这只会发生在32位IE8中的任何

用于匹配 5 位或 9 位邮政编码的 Javascript 正则表达式

我有一个与我最近的帖子类似的问题,但使用邮政编码验证器,我正在尝试转换为javascript验证过程。我的脚本看起来像这样:varregPostalCode=newRegExp("\\d{5}(-\d{4})?");varpostal_code=$("input[name='txtzipcode']").val();if(regPostalCode.test(postal_code)==false){bValid=false;msg=msg+'InvalidZipCode.';}从我最近的帖子中,我了解到一开始我需要的转义字符。基本上,此函数正在验证一个正确的邮政编码22601,但它不

javascript - 这些 JavaScript 按位运算符有什么作用?

xx>>=y(x=x>>y)x>>>=y(x=x>>>y)x&=y(x=x&y)x^=y(x=x^y)x|=y(x=x|y)这些不同的运算符有什么作用? 最佳答案 >Bitshift左右分别。如果您将左操作数想象成一个二进制位序列,您就是将它们向左或向右移动由右操作数指示的位数。&,^,|这些分别是按位and、xor和or。您可以将&和|视为&&和||的对应物,只是它们将对待它们的操作数作为位向量,并对每个位执行逻辑运算。没有^^操作符,但这个操作是“异或”或“exclusiveor”。您可以将“axorb”视为“a或b,但不能两者