【发布时间】:2022-11-01 11:43:32
【问题描述】:
这是我第一次来这个论坛,我想从这个问题开始 据我所知,在 C 中,char 数据类型是 8 位长,但是当您使用这种数据类型来传输 ascii 信息时,仍然是 8 位长,但 1 位是奇偶校验位,对吗?这是正确的吗,我的问题是,你能将一个ASCII字符发送到一个接收器,包括奇偶校验位吗?因为如果我的代码是: ...... 字符 x=0b01111000; ...... 它收到'x',但如果我的代码是: …… 字符 x=0b11111000; …… 它没有收到“x”,但奇偶校验位在 1,并且我的“x”数据中有 4 个“1”,所以我不知道何时使用奇偶校验位或我做错了什么 提前感谢您的回答!
.........................................
【问题讨论】:
-
ASCII 是一种字符编码,与位的存储或传输无关。需要明确的是,ASCII 中没有内置奇偶校验信息。这取决于通信协议,它可能包括也可能不包括任何数量的奇偶校验位、开始/停止位、数据位、ETC.
-
所有 ASCII 码位都有 7 位。在默认的 C 语言环境中,在具有 8 位字节的机器上,它们通常以最高有效位零存储。最高有效位为 1 的代码页的一半是实现定义的,并且通常是某些特定于操作系统的代码页。 C 没有对校验和或奇偶校验的内置支持,也没有理由这样做。
char是一种数据类型。它是一堆串在一起的碎片。如果你想要错误检查,那是你的事。