某些CPU(特别是x86 CPU)在其状态寄存器中具有奇偶校验标志.该标志指示操作结果的位数是奇数还是偶数.
奇偶校验标志在编程环境中起什么实际用途?
旁注: 我假设它打算与奇偶校验位一起使用以执行基本的错误检查,但是这样的任务似乎并不常见,以保证整个CPU标志.
我不完全理解这种计算奇偶校验位的算法.有人可以详细解释一下吗?
以下代码取自"Hacker's Delight"一书:
int parity(unsigned x) {
unsigned y;
y = x ^ (x >> 1);
y = y ^ (y >> 2);
y = y ^ (y >> 4);
y = y ^ (y >> 8);
y = y ^ (y >>16);
return y & 1;
}
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方法来检查2 个排列(由列表表示)是否具有相同的奇偶校验.请注意,如果它们是偶数或奇数奇偶校验,我就不感兴趣,只是相等.
我是Python新手,我的天真解决方案在下面作为回复给出.我期待Python专家向我展示一些很酷的技巧,以便在更小,更优雅的Python代码中实现相同的功能.
有谁知道如何在Android中使用controlTransfer设置奇偶校验?
我无法在任何地方找到此方法参数的解释 - 只是ref中的一些通用信息.
我发现的一个例子是:
conn.controlTransfer(0x40, 0x04, 0x0008, 0, null, 0, 0); //data bit 8, parity none, stop bit 1, tx off
Run Code Online (Sandbox Code Playgroud)
但我需要改变平价.有人有想法吗?
非常感谢!
我试图找到一个位串的奇偶校验,如果x有一个奇数#为0,它返回1.
我只能使用基本的按位运算,到目前为止,我已经通过了大部分测试,但我想知道两件事:
为什么x ^(x + ~1)有效?我偶然发现了这个问题,但如果有奇数个位,那么它似乎会给你1,如果是偶数则会给你一些东西.像7 ^ 6 = 1,因为7 = 0b0111
这是解决问题的正确方向吗?我假设我的问题源于第一次操作,特别是(x + ~1),因为它会溢出某些2的补码数.谢谢
码:
int bitParity(int x) {
int first = x ^ (x + ~1);
int second = first ^ 1; // if first XOR gave 1 you'll return 0 here
int result = !!second;
return result;
}
Run Code Online (Sandbox Code Playgroud) 在Ruby中计算字节是否具有奇数或偶数奇偶校验的最佳方法是什么?我有一个版本工作:
result = "AB".to_i(16).to_s(2).count('1').odd?
=> true
Run Code Online (Sandbox Code Playgroud)
将数字转换为字符串并计算"1"似乎是计算奇偶校验的一种不好的方法.有更好的方法吗?
我希望能够计算3DES密钥的奇偶校验.最终,我想将偶数字节转换为奇数.
谢谢,丹
创建三种类型的奇偶校验位的目的是什么,所有奇偶校验位都定义了奇偶校验位未被精确使用的状态?
"如果存在奇偶校验位但未使用,则可将其称为标记奇偶校验(当奇偶校验位始终为1时)或空间奇偶校验(该位始终为0)" - 维基百科
性能有任何实际差异吗?它更快吗?(假设我在同一个程序中的至少100个案例中使用它,它会在速度方面改进我的程序吗?)
我们都知道,在查看源代码时,可以安全地假设方向标志清晰.方向标志的概率非常低.
我想了解其他旗帜的可能性.这就是为什么我编写了一个测试程序,它单步执行我现有的一些软件,为前12个EFLAGS位中的每一个增加一个计数器.
结果证实了关于方向标志(DF)的假设,并且毫不奇怪地表明溢出标志(OF)的概率非常低.
但其他旗帜怎么样?进位标志(CF),辅助标志(AF),零标志(ZF)和符号标志(SF)似乎稳定在25%,但奇偶校验标志(PF)跳出超过50%.
我想知道为什么CF,AF,ZF和SF的概率如此之低.
对于PF,我自己的两分钱解释告诉我,鉴于所有可能的8位位模式中的奇偶校验偶数和奇偶校验的50-50分布并且意识到一些最常用的数字(0和-1)具有甚至平价,超过50%的机会是合理的.
我正在运行连接到自定义区块链(PoA)的奇偶校验对等体,但我无法发送交易,也无法查看我的帐户的交易列表.我收到以下错误(请参阅错误屏幕截图):
这些错误指向CORS问题,但所有的配置我试过CORS( ,"all"
,"null"
,"*"
,"none"
)"http://example.com:8540"
导致了同样的结果.在本地运行对等体和远程运行它从我的电脑上访问GUI时,我得到相同的结果.所有列出的端口都在防火墙中打开.Chrome扩展程序已停用; 也在隐身模式下尝试过.我也尝试添加命令行选项--unsafe-expose
无济于事.
这是我在远程机器上的toml(运行Ubuntu):
[parity]
chain = "pcplExternal.json"
base_path = "/home/mike/parity"
[network]
port = 30303
[rpc]
hosts = ["all"]
port = 8545
interface = "0.0.0.0"
cors =["all"]
apis = ["web3", "eth", "net", "personal", "parity", "parity_set", "traces","rpc", "parity_accounts"]
[ui]
force = true
port = 8540
interface = "0.0.0.0"
path = "/home/mike/parity/signer"
[websockets]
origins = ["all"]
apis = ["web3", "eth", "pubsub", …
Run Code Online (Sandbox Code Playgroud) parity ×10
assembly ×2
bit ×2
serial-port ×2
3des ×1
android ×1
bitwise-and ×1
bitwise-xor ×1
c ×1
cors ×1
des ×1
eflags ×1
ethereum ×1
flags ×1
list ×1
permutation ×1
python ×1
ruby ×1
usbserial ×1
x86 ×1