awtk/docs/fscript_crc.md
2022-08-23 10:34:55 +08:00

88 lines
1.2 KiB
Markdown

## CRC 函数
Cyclic redundancy check
### 1.crc16
> crc16 函数。
----------------------------
#### 原型
```js
crc16(str) => uint16_t
crc16(data, size) => uint16_t
crc16(binary) => uint16_t
```
#### 示例
```js
crc16("hello")
```
### 2.crc32
> crc32 函数。
----------------------------
#### 原型
```js
crc32(str) => uint32_t
crc32(data, size) => uint32_t
crc32(binary) => uint32_t
```
#### 示例
```js
crc32("hello")
```
### 3.cksum
> cksum 函数。
----------------------------
#### 原型
```js
cksum(str) => uint16_t
cksum(data, size) => uint16_t
cksum(binary) => uint16_t
```
#### 示例
```js
cksum("hello")
```
### 更多示例
```js
//test string
assert(crc16("123") == 40116)
assert(crc32("123") == u32(2286445522))
assert(cksum("123") == u16(65385))
//test binary
var a = typed_array_create("i8", 10)
assert(typed_array_push(a, 1,2,3) == 3)
print(crc16(a.data, a.size))
print(crc32(a.data, a.size))
print(cksum(a.data, a.size))
unset(a);
//test binary
assert(file_write("test.bin", "hello", 5))
assert(file_exist("test.bin"))
a = file_read_binary("test.bin")
assert(crc16(a) == 13501)
assert(crc32(a) == 907060870)
assert(cksum(a)==65003)
assert(file_remove("test.bin"))
unset(a)
```