问题标签 [parity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
15694 浏览

binary - 具有奇校验的 ASCII

考虑一个数据通信系统,它使用带有奇校验的 ASCII 来表示字符。每个 7 位 ASCII 字符后跟一个奇偶校验位。

为以下要传输的消息中的每个字符指定生成的 8 位代码字:

学院!

(此消息中的字符,包括感叹号。)


使用ASCII 字符表,我将 ASCII 字符“c”从 0x63 转换为二进制: 0110 0011

有偶数个 1。

1)我在哪里添加奇偶校验位(前缀或后缀)?

2) 添加一个奇偶校验位使 1 的个数为奇数将导致 9 位。如何将其保持为 8 位?

0 投票
4 回答
7592 浏览

c - 如何使用 C 确定数字的二进制表示中是否有偶数 1?

已经有关于计算1一个数字中有多少个s的问题,但是这个问题是关于判断1是偶数还是奇数。

不允许使用任何循环或条件(包括 switch)语句。此外,应避免除法、乘法或取模运算符。更具体地说,我们可以假设它是一个 32 位无符号整数。

实际上我已经有了一个实现,但我无法弄清楚它工作的原因。任何证明其正确性或任何新想法的证据都会非常有帮助。

0 投票
1 回答
2476 浏览

linux - PARMRK termios 行为在 Linux 上不起作用

我正在尝试从使用标记奇偶校验作为地址字节和空间奇偶校验作为消息正文的设备接收消息。该设备是多点串行总线的“主机”。根据 termios 手册页,我正在使用 CMSPAR、PARENB、~PARODD、INPCK、~IGNPAR 和 PARMRK。我希望在每个地址字节上获得一个 3 字节序列: '\377' '\0' 。它不会发生......我总是得到地址字节(和正文字节),但没有前导 '\377' '\0' 字符。

我试图让 PARMRK 使用奇偶校验设置,以防不支持 CMSPAR。数据流中仍然没有 3 字节序列。我正在使用 Ubuntu 12.04 LTS。

n_tty.c:n_tty_receive_parity_error() 具有实现 PARMRK 的逻辑。8250_core.c 具有标记奇偶校验错误的逻辑。dmesg | grep ttyS0 显示 serail8250: ... 是 16550A。嗯...随后的消息显示 00:0a: ... 是 16550A。也许 8250 驱动程序实际上并没有处理 ttyS0?

有任何想法吗?即使你没有看到我做错了什么但让 PARMAR 工作,关于你的情况的评论可能对我有帮助。

更新:我的 Linux 在 VMware VM 中运行,所以我尝试了非 VM 配置,现在它可以工作了!如果有人知道,我仍然想知道为什么在 VM 中未检测到奇偶校验错误。

这是我的配置代码:

0 投票
2 回答
1432 浏览

bit-manipulation - 位奇偶校验码需要解释它是如何工作的?

这是报告bit parity给定整数的代码:

我在这里找到了这个。. 虽然链接中似乎有解释,但我不明白。开始的第一个解释The code first "merges" bits 0 − 15 with bits 16 − 31 using a right shift and XOR (line 3).是让我很难理解发生了什么。我试图在他们周围玩耍,但这没有帮助。如果清楚地说明这项工作的方式,它将对像我这样的初学者有用谢谢

编辑:来自下面的帖子:

现在再次右移 8 位:

那么奇偶校验的合并发生在哪里呢?

0 投票
2 回答
738 浏览

arm - Cortex-A9 缓存奇偶校验

我正在使用带有 pl310 l2 高速缓存控制器的基于 cortex-a9 的设计 (Altera Cyclon-V)。当我在 PL310 AUX 寄存器中启用“奇偶校验启用”时,我遇到了故障(表示缓存奇偶校验问题的中断)。当我保持禁用奇偶校验(默认值)时,系统运行良好,没有错误\中止坏数据。

任何想法为什么会发生这种情况?

0 投票
1 回答
81 浏览

redundancy - 用 Y 奇偶校验片段切碎 X 片段中的文件以实现冗余

理论 说我们可以将一个文件分成 N 个片段,然后,我们可以只用其中的 P 个片段来恢复文件。其中 P < N。

我正在尝试构建类似Symform的东西,实际上只是其中的一个子集。

每个块被分解成 64 个碎片,当存储在云中时,添加了 32 个奇偶校验碎片以实现冗余。

有没有我可以重复使用的开源解决方案?或者也许有一些链接可以更详细地描述算法?

0 投票
1 回答
806 浏览

c - int bitparity的解释

我必须创建一个函数 bitParity(int x),它接受一个整数,如果 x 的位形式中有奇数个 0,则返回 1,否则返回 0。

例如:bitParity(5) = 0, bitParity(7) = 1 合法操作:!~ & ^ | + << >>

我的朋友与我分享了他的代码,但是当我从头开始计算时,它似乎与他得到的相反,有人可以稍微解释一下这段代码,以便我了解它是如何运作的吗?

0 投票
2 回答
763 浏览

python - 带或不带奇偶校验的 RS232 字长

串行类中的字节大小属性定义为用于该连接的数据位数。如果我启用奇校验,它是否将定义的数据位之一转换为表示奇偶校验?或者它只是在开始位和停止位之间添加另一个位?

任何帮助将不胜感激。谢谢

0 投票
2 回答
1388 浏览

c - 无符号整数的偶校验

我不确定从哪里开始编写这个函数,我想我将值作为数组循环并对其应用异或操作。会像以下工作吗?如果没有,有什么方法可以解决这个问题?

0 投票
2 回答
672 浏览

java - 禁用串行通信的奇偶校验位不起作用

我在通过我的 comport 发送字节时遇到问题。它发送一个奇偶校验位,尽管它被明确关闭(我需要没有奇偶校验的字节与某些硬件通信)。我的代码非常简单:

我将振荡器连接到端口,无论我做什么,都有一个额外的位,这似乎是一个奇偶校验位。但正如你所看到的,我通过代码禁用了奇偶校验,也通过我的设备管理器禁用了它。我在振荡器上看到的是:0 0010 0001 11(包括开始和停止位)。我不知道,这个奇偶校验或额外比特来自哪里......有人有想法吗?