crc算法的应用 CRC16 CRC32

提到crc算法,可能比较陌生,但是在日常开发中,有如下应用

循环冗余检查_百度百科

本质是一个哈希函数,用于文件校验处理。

CRC16

redis集群使用了crc16 来计算对应的哈希值来计算与 16384 取模,确定当前 key 所在的哈希槽,从而确定所在的节点,做到数据分区,突破单节点请求处理的限制。

HASH_SLOT = CRC16(key) mod 16384

https://github.com/redis/redis/blob/7.2.3/src/crc16.c

redis 的 crc16 源码

使用场景

按位计算

程序空间十分苛刻但 CRC 计算速度要求不高的微控制器系统按字节计算

程序空间较大且 CRC 计算速度要求较高的计算机或微控制器系统,半字节计算

程序空间不太大,且 CRC 计算速度又不可以太慢的微控制器系统。

CRC32

一般在压缩文件里见到的多,在压缩完成在使用压缩文件打开会有 CRC 一列。

使用场景

主要在压缩方面

java 实现

开源组件里的引用

hadoop

https://github.com/apache/hadoop/blob/master/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/PureJavaCrc32C.java

kafka

https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/common/utils/PureJavaCrc32C.java

java 自带

java.util.zip.CRC32

在 java 9 之前具体算法细节在 jvm 实现,通过 native 进行调用,在 java 9 中重写了该类,底层使用了 intel 的 SSE4.2 指令集。

参考链接

https://jingyan.baidu.com/article/ce4366493cd4157672afd35b.html

https://baike.baidu.com/item/CRC32/7460858

https://www.cnblogs.com/wql025/p/14430778.html

https://www.cnblogs.com/wulinn/p/11607114.html

https://zhuanlan.zhihu.com/p/567234595

https://blog.51cto.com/u_16175513/7148293

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2662066.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

关于java选择结构if和else详解

关于java选择结构if和else详解 在上篇文章中我们了解了java的基本流程控制之一用户交互,也讲述了scanner类的使用方式,本篇文章中我们来深入一下下一个java流程控制,if和else,这个是非常关键的,也是我们以后的工作中最…

穷举vs暴搜vs深搜vs回溯vs剪枝

欢迎来到Cefler的博客😁 🕌博客主页:那个传说中的man的主页 🏠个人专栏:题目解析 🌎推荐文章:题目大解析(3) 目录 👉🏻全排列 👉&…

北斗卫星助力物流企业,打造智慧运输新时代

北斗卫星助力物流企业,打造智慧运输新时代 北斗卫星系统作为我国自主研发的卫星导航系统,近年来在智慧物流领域发挥了重要作用。通过北斗卫星系统的应用,物流企业可以实现智能化管理,提高运输效率,降低物流成本。越来…

零基础学Java第二天

复习回顾: 1.dos命令 dir 显示当前文件夹下面的所有的文件和文件夹 cd 切换目录的 mkdir 创建文件夹的 rd 删除文件夹的 del 删除文件 D: 切换盘符 cls 清屏 2.书写Java代码换行打印《静夜诗》这首古诗 class Demo1 { …

Python中的并发编程(7)异步编程

异步编程 Python3.4后新增了asyncio模块,支持异步编程。 异步是在一个线程中通过任务切换的方式让多个任务”同时“进展。asyncio不涉及线程/进程切换,减少了线程/进程创建、上下文切换的开销,更轻量级。 asyncio的核心是事件循环&#xff0…

智能分析网关V4+太阳能供电模式,搭建鱼塘养殖远程视频监控方案

一、行业背景 传统的鱼塘养殖模式由于养殖区域面积大、管理难度高,经常会出现偷钓者、盗窃鱼苗、非法入侵等监管难题,给养殖户带来了不小的经济损失。为了解决这些问题,搭建鱼塘远程监控系统成为了必要之举。通过远程监控系统,管…

rabbitmq使用总结

1、进入rabbitmq的sbin目录,进入CMD 2、输入./rabbitmq-plugins enable rabbitmq_management启用管理服务。 3、输入./rabbitmqctl start_app启动服务。 查看是否启动成功 1、浏览器访问http://localhost:15672/ 下载erlang 地址如下: http://erla…

【C++入门(一)】:详解C++语言的发展及其重要性

🎥 屿小夏 : 个人主页 🔥个人专栏 : C入门到进阶 🌄 莫道桑榆晚,为霞尚满天! 文章目录 🌤️什么是C🌤️C的发展史🌤️C的重要性☁️语言的广泛度☁️C的领域⭐…

java在线票务系统(选座)Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java servlet 在线票务系统(选座)管理系统是一套完善的java web信息管理系统 系统采用serlvetdaobean(mvc模式),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要…

从方程到预测:数学在深度学习中的作用

图片来源 一、说明 深度学习通常被认为是人工智能的巅峰之作,它的成功很大程度上归功于数学,尤其是线性代数和微积分。本文将探讨深度学习与数学之间的深刻联系,阐明为什么数学概念是该领域的核心。 二、数学框架 从本质上讲,深度…

腾讯云轻量应用服务器性能差吗?

腾讯云轻量应用服务器性能如何?轻量服务器CPU采用什么型号?处理器计算性能如何?轻量应用服务器会不会比云服务器CVM性能差?腾讯云服务器网txyfwq.com详解轻量CPU型号主频、处理器性能、内存、公网带宽、月流量、不同地域速度测试、…

腾讯云价格计算器,一键计算精准报价,好用!

腾讯云价格计算器:可以计算腾讯云服务器不同CVM实例规格、CPU内存、公网带宽和系统盘费用明细表,可以一键计算出精准报价明细表,腾讯云服务器网txyfwq.com分享大家腾讯云服务器价格计算器入口链接、使用方法及限制说明: 腾讯云服…

【持续更新ing】uniapp+springboot实现个人备忘录系统【前后端分离】

目录 (1)项目可行性分析 (2)需求描述 (3)界面原型 (4)数据库设计 (5)后端工程 接下来我们使用uniappspringboot实现一个简单的前后端分离的小项目----个…

5天一更新的卫星影像数据来自哪里?

这里我们就来分享一下,5天一更新的卫星影像源来自哪里。 哥白尼计划 在开始讲卫星影像数据源时,我们先来了解一下什么是哥白尼计划。 哥白尼计划(Copernicus Programme),又称全球环境与安全监测计划(Glo…

HCIA-Datacom题库(自己整理分类的)——ARP协议【完】

一、单选 1.ARP 属于哪一层协议? 数据链路层 网络层 物理层 传输层 2.ARP请求是____发送的 点播 广播 组播 单播 关于ARP报文的说法错误的是? ARP请求报文是广播发送的 ARP报文不能被转发到其他广播域 ARP应答报文是单播方发送的 任何链路层协议都需…

【并发编程篇】解决线程安全问题 — CopyOnWriteArraySet

文章目录 🍔情景引入🌺报错了,解决方法⭐方法一⭐方法二 🍔情景引入 我们看下面这段代码 运行后报错了 我们看看报错原因 报错原因是并发修改异常 🌺报错了,解决方法 ⭐方法一 我们使用其他工具类&am…

【领域驱动设计】模式--通用语言(Ubiquitous language)

一.前言 有道无术术可求,有术无道止于术。方法论的形成都是为了让我们能够更高效,系统的解决问题,而不至于遇到问题不知所措。 二.通用语言的必要性 相信大家在实际的软件开发流程过程中,经常会遇到参照 Prd原型 编码出的系统与实…

骑砍战团MOD开发(27)-module_tableau_materials.py材质

一.配置材质资源 OpenBrf寻找对应材质资源. tableau配置材质资源 ("round_shield_1", 0, "sample_shield_round_1", 512, 256, 0, 0, 0, 0,[(store_script_param, ":banner_mesh", 1),(set_fixed_point_multiplier, 100),(init_position, pos1),…

NFC物联网智能购物车设计方案

智能购物车是综合利用计算机网络、射频识别技术、数据库技术、单片机于一体的设备具有先进性、便于管理性、经济性、普适性。基于NFC (Near Field Communication,近场通信)技术的智能购物车,能够大幅缩短结账排队时间,实现“无感支付”。NFC是…