我想计算一个32位CRC查找表.我试过的一种方法是使用本网站的以下代码:
#include <iostream>
#include <stdint.h>
void make_crc_table()
{
unsigned long POLYNOMIAL = 0x04c11db7;
unsigned long WIDTH = 8 * sizeof(unsigned long);
unsigned long TOPBIT = 1 << (WIDTH - 1);
unsigned long crcTable[256];
unsigned long remainder;
// Compute the remainder of each possible dividend
for (int dividend = 0; dividend < 256; ++dividend)
{
// Start with the dividend followed by zeros
remainder = dividend << (WIDTH - 8);
// Perform modulo-2 division, a bit at a time …Run Code Online (Sandbox Code Playgroud) 我试图使用YQL从雅虎获得股票期权链.我在YQL控制台中尝试过这个命令:
select * from yahoo.finance.options
Run Code Online (Sandbox Code Playgroud)
但是,我得到这个错误XML:
<?xml version="1.0" encoding="UTF-8"?>
<error xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" yahoo:lang="en-US">
<diagnostics>
<publiclyCallable>true</publiclyCallable>
</diagnostics>
<description>No definition found for Table yahoo.finance.options</description>
</error>
Run Code Online (Sandbox Code Playgroud)
看起来这个表不再存在了.有谁知道正确的桌子是什么?
我正在使用版本68的 Three.js .我正在使用相同的方法进行碰撞检测,因为这个人在这里使用,这在大多数时候都是很棒的(对你来说,这是一个很大的"谢谢"!):http://stemkoski.github.io/Three .js文件/冲突,Detection.html
如果您想从github下载它,这是源的链接.只需寻找Collision-Detection.html:https://github.com/stemkoski/stemkoski.github.com
以下是对碰撞检测很重要的代码:
var MovingCube;
var collidableMeshList = [];
var wall = new THREE.Mesh(wallGeometry, wallMaterial);
wall.position.set(100, 50, -100);
scene.add(wall);
collidableMeshList.push(wall);
var wall = new THREE.Mesh(wallGeometry, wireMaterial);
wall.position.set(100, 50, -100);
scene.add(wall);
var wall2 = new THREE.Mesh(wallGeometry, wallMaterial);
wall2.position.set(-150, 50, 0);
wall2.rotation.y = 3.14159 / 2;
scene.add(wall2);
collidableMeshList.push(wall2);
var wall2 = new THREE.Mesh(wallGeometry, wireMaterial);
wall2.position.set(-150, 50, 0);
wall2.rotation.y = 3.14159 / 2;
scene.add(wall2);
var cubeGeometry = new THREE.CubeGeometry(50,50,50,1,1,1);
var wireMaterial …Run Code Online (Sandbox Code Playgroud) 我需要能够在远程设备上创建一个进程并使用 PowerShell 脚本向它发送命令。我需要这样做,因为我在使用命令时会收到提示。我一直试图通过使用 Google 搜索和以下链接来弄清楚如何做到这一点:http : //tartarus.org/~simon/putty-snapshots/htmldoc/Chapter7.html#plink。通过该链接,我意识到在 Plink 中使用带有命令列表的文件将不起作用,原因如下(从该链接复制并粘贴):
您可以在服务器命令行上有效运行的任何非交互式命令,您都可以通过这种方式使用 Plink 在批处理文件中运行。
它说“非交互式命令”,这就是我正在使用的。无论如何,我也尝试使用带有命令列表的文件,但它并没有解决我的问题,因为我基本上需要发出一个命令,等待,然后在提示我时再给出一个。这是我在PuTTY 常见问题解答中找到的内容,基本上是我想尝试的内容:
可能你最好的选择是使用命令行连接工具 Plink。如果您可以将 Plink 作为第二个 Windows 进程启动,并安排您的主进程能够通过管道向 Plink 进程发送数据并从中接收数据,那么您应该能够从您的程序建立 SSH 连接。例如,这就是 CVS for Windows 所做的。
编辑:根据 user2460798 的回答,我尝试了下面的解决方案。我希望使用 PuTTY 并能够以这种方式向它发送命令。我现在的问题是我不知道如何向打开的 PuTTY 会话发送命令。所以基本上这段代码打开了一个 PuTTY 会话并尝试向它写入“ls”命令,但没有任何反应。我不知道“ls”文本的去向。
$procInfo = New-Object Diagnostics.ProcessStartInfo
$procInfo.RedirectStandardOutput=$true
$procInfo.RedirectStandardInput=$true
$procInfo.RedirectStandardError=$true
$procInfo.FileName="putty.exe"
$procInfo.Arguments="-ssh -pw <password> <username>@<device>"
$procInfo.UseShellExecute=$false
$p=[diagnostics.process]::start($procInfo)
sleep -Milliseconds 3000
$p.StandardInput.WriteLine("ls")
Run Code Online (Sandbox Code Playgroud) 如果我想翻转一些,我想知道哪种方式更好.我应该使用它XOR 0xffffffff还是使用它~?
我担心在某些情况下我可能需要以这些方式中的一种方式将位填充到末端而不是另一种方式,这将使另一种方式更安全.我想知道是否有时候使用一个而不是另一个.
下面是一些在同一输入值上使用两者的代码,输出值始终相同.
#include <iostream>
#include <iomanip>
void flipBits(unsigned long value)
{
const unsigned long ORIGINAL_VALUE = value;
std::cout << "Original value:" << std::setw(19) << std::hex << value << std::endl;
value ^= 0xffffffff;
std::cout << "Value after XOR:" << std::setw(18) << std::hex << value << std::endl;
value = ORIGINAL_VALUE;
value = ~value;
std::cout << "Value after bit negation: " << std::setw(8) << std::hex << value << std::endl << std::endl;
}
int main()
{
flipBits(0x12345678);
flipBits(0x11223344); …Run Code Online (Sandbox Code Playgroud) c++ ×2
c ×1
crc32 ×1
interactive ×1
javascript ×1
negation ×1
option ×1
plink ×1
powershell ×1
process ×1
putty ×1
three.js ×1
web-services ×1
xor ×1
yql ×1