news 2026/7/7 9:41:38

C语言函数实现提取字节中的某一位,写入某一位到字节中

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C语言函数实现提取字节中的某一位,写入某一位到字节中

提取字节中的某一位,num为要提取的字节,n为要提取字节中的第n位,返回置位第n位的值

// 提取 uint8_t 数值的第 n 位(索引从 0 开始,最低位为0) unsigned char get_bit(unsigned char num, unsigned char n) { // 1. 输入验证:确保 n 在 0~7 范围内 if (n > 7) return 0xFF; // 错误处理(根据需求调整) // 2. 位操作:右移 n 位后与 1 按位与,提取目标位的值 return (num >> n) & 0x01; }

写入某一位到字节中,num为要写入的字节,position为要写入的第n位,value为要写入位的值(0或1)

// 设置指定位的函数 unsigned char setBit(unsigned char num, unsigned char pos, unsigned char val) { // 确保 pos在 0~7 范围内 if (pos > 7) return num; //将num的第pos位清零,其他位保持不变 num &= ~(1 << pos); // 根据val的值(非0则1,0则0)左移pos位,然后与num进行或运算,从而将第pos位设置为val的值。 //这里利用了(val != 0)得到一个布尔值(0或1),然后左移pos位,这样就在第pos位上放置了0或1。 num |= ((val != 0) << pos); return num; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/6 13:02:04

一块8088单板机,桌面上的技术玩具

我的书桌左上角&#xff0c;常年搁着一块巴掌大的墨绿色电路板。在双屏显示器、机械键盘和无线充电座的包围中&#xff0c;它显得如此突兀——四十年前的8088单板机&#xff0c;像一位误入数字盛宴的旧时代绅士&#xff0c;沉默地躺在3D打印的亚克力底座上。 一、时光的琥珀这…

作者头像 李华
网站建设 2026/7/5 12:01:56

数字签名与数字证书

在介绍数字签名和数字证书前&#xff0c;先简单了解两个算法&#xff1a;Hash算法和RSA算法。 Hash算法&#xff1a;Hash算法是将可变长度的数据块M作为输入&#xff0c;产生固定长度的Hash值&#xff08;或者叫做摘要&#xff09;。可以将Hash算法看作一个非常复杂的CRC算法&…

作者头像 李华
网站建设 2026/6/30 15:47:01

国密算法全家桶:一文认清 SM 系列 “安全卫士”

一、除了加密还能干嘛 加密技术主要分为三大类&#xff1a;对称加密、非对称加密 和 哈希算法。 加密不仅仅是加密数据那么简单&#xff0c;已经被玩出花来了 在当前数字化时代&#xff0c;无论是支付缴费、身份认证还是业务数据处理&#xff0c;都需要密码技术构筑安全屏障…

作者头像 李华
网站建设 2026/7/6 3:09:32

RocketMQ的事务消息是如何实现的?

RocketMQ 通过 TransactionListener 接口实现事务消息机制&#xff0c;其工作流程如下&#xff1a;发送半消息首先向 Broker 发送一条半消息&#xff08;状态标记为"prepared"&#xff09;&#xff0c;该消息会被存储在事务日志中但暂不可消费。执行本地事务半消息发…

作者头像 李华
网站建设 2026/7/7 10:15:20

招标平台最难的战斗:在持续变化中保持数据稳定与精准

招标平台的“动态数据治理”&#xff1a;如何应对政策变化、源站改版与信息规范的持续挑战&#xff1f; 一个稳定的招标信息服务平台&#xff0c;其后台并非一成不变。相反&#xff0c;它运行在一个充满动态变化的环境中&#xff1a;采购政策频繁调整、各级官方招标公告网改版…

作者头像 李华