我编写了两个简单的按钮处理程序来测试/演示德尔菲加密简编5.2中的CRC16和CRC32。CRC16的代码运行良好,但是CRC32的验证总是失败的。
我使用的是一个512字节数组,其中最后的2或4个字节(用于crc16或crc32)保留给校验和。CRC-32的代码有什么问题吗?我的第一个想法是,字节顺序存在问题,但是crc16代码也会失败。
procedure TForm3.CRC16Click(Sender: TObject);
var
LData: array[1..512] of Byte;
FSum: Cardinal;
FIntPtr: Pointer;
begin
我是perl新手,我想知道为什么没有正确地将参数传递给子例程。另外,输出值是否正确?
use strict;
sub crc16 {
use constant POLY => $_[1];
my $crc = 0;
for my $c ( unpack 'C*', $_[0] ) {
$crc ^= $c;
for my $b ( 0 .. 7 ) {
my $carry = $crc & 1;
$crc >>= 1;
我试着用ise14.4在vhdl上编写crc16计算程序,但不明白为什么会有“解析错误,意外的错误”。试着把它放到过程中,但它也不起作用。
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity crc16 is port(
clk : in STD_LOGIC:='0');
end crc16;
architecture Behavioral of crc16 is
signal data:std_logic_vector(15 downto 0):="1010101010101010";
signal ext
一开始,我必须说,我对mips汇编语言和Stackoverflow都是新手。
我有mips汇编语言的工作代码,这是计算CRC32与给定的文本文件的查找表,我想改变它来计算CRC16和CRC8。
我几乎可以肯定所有情况下的查找表都是正确生成的:CRC32、CRC16和CRC8。我知道我应该更改CRC16的初始值,例如0xffff,但这还不够。我认为问题是在改变这个值之后,这个算法从查找表中提取了错误的索引,我说的对吗?
提前感谢您的帮助。
##### This subroutine first generates 256 words crc32 table for ASCII codes and
试图从以下维基百科页面中的“代码片段3”中理解这段伪代码的含义:
function crc(byte array string[1..len], int len) {
remainderPolynomial := 0
// A popular variant complements remainderPolynomial here; see § Preset to −1 below
for i from 1 to len {
remainderPolynomial := remainderPolynomial xor polynomialForm(str
我在C++上有源代码库,我想在我的Node.js应用程序上使用它。为了了解它是如何工作的,我使用node-gyp来编译C++代码,它有两个简单的计算校验和的函数(crc16和crc16Two)。
void crc16(const FunctionCallbackInfo<Value>& args) {
Isolate* isolate = args.GetIsolate();
if (args.Length() < 2) {
// Throw an Error that is passed back to JavaScript
我需要计算从一个大小为M的二进制文件(一对Kb,与我的作用域不太相关)中提取的N字节的CRC16 (为了简单起见,在本例中为5字节)。 printf "offset\tvalue\tcrc16\n";
#Read N bytes from file and copy in the container
for my $counter (0 .. 5- 1)
{
my $oneByte;
read(FH, $oneByte, 1) or die "Error reading $inFile!";
my $ctx2 = Digest::CRC
使用这个字符串"000016037000“和这个CRC16函数,结果不是一个2字节的字符串,为什么呢?
def _crc16(data, bits=8):
"""private method: for calculating the CRC
based on the standard EN50463-4
Arguments:
Input: data in ASCII encoding !
Output: CRC of the data
"""
crc = 0xFFF
我目前正在编写一个CRC16程序,它使用CRC16多项式X^16 + X^15 + X^2 + 1计算字符的CRC。程序应从标准输入读取数据,并以十六进制输出16位CRC。尽管如此,当我执行程序时,我得到了错误的输出值。
下面是我的代码:
#include <stdint.h>
#define CRC16 0x8005
unsigned short crc(unsigned char msg[], int len)
{
unsigned short out = 0;
int bits = 0, t_flag;
int x = 0;
/* San