当前位置: 首页 > news >正文

项目需要,写了一个取出8位变量的2bit数据,引发了思考!

文章目录

  • 如题
  • 代码 & 截图


如题

项目开发中,在DTC故障码这一块,需要取出8位变量的2bit数值,我临时写了一个也能解决,在和供应商工程师讨论的过程中,发现这种方式不够优雅,于是我总结了几种写法方式!

代码 & 截图

#include <stdio.h>
#include <stdbool.h>  #define BINARY_01010101 85 // 十进制表示unsigned char g_testData = BINARY_01010101;
unsigned char g_read2BitTestData = 0;
unsigned char g_read2BitTestData3 = 0;
unsigned char g_read2BitTestData4 = 0;
bool g_read2BitTestData2 = 0;int main(int argc, char *argv[])
{// printf("Hello C-Free!\n");g_read2BitTestData = (g_testData & (1 << 2));printf("g_read2BitTestData的十进制数值为:%d\n", g_read2BitTestData);g_read2BitTestData2 = (bool)g_read2BitTestData;printf("方式一:g_read2BitTestData2的十进制数值为:%d\n", g_read2BitTestData2);g_read2BitTestData3 = (g_testData & (1 << 2)) != 0;printf("方式二:g_read2BitTestData3的十进制数值为:%d\n", g_read2BitTestData3);g_read2BitTestData4 = (g_testData >> 2) & 0x01; // 0000 0001printf("方式三:g_read2BitTestData4的十进制数值为:%d\n", g_read2BitTestData4);return 0;
}

我最初是用g_read2BitTestData2 这种方式实现的,后来觉得g_read2BitTestData3和g_read2BitTestData4这种方式都比较优雅,因为g_read2BitTestData2 实际上是将4转化为bool型为1了,而g_read2BitTestData3和g_read2BitTestData4直接就是bool型,转不转化都行!

在这里插入图片描述


http://www.mrgr.cn/news/58914.html

相关文章:

  • 这是一篇vue3 的详细教程
  • 通过 Lighthouse 和 speed-measure-webpack 插件分析优化构建速度与体积
  • MMScan数据集:首个最大的多模态3D场景数据集,包含层次化的语言标注.
  • 【Jenkins】解决在Jenkins Agent节点容器内无法访问物理机的docker和docker compose的问题
  • Redis批量获取缓存的方法
  • 图像分割-DeepLab
  • 「漏洞复现」JEPaaS 低代码平台 j_spring_security_check SQL注入漏洞
  • Element 的Table表格实现列合并(记得先排序、element-plus、列合并、线上已投入使用)
  • 信息安全工程师(72)网络安全风险评估概述
  • Java Web 开发:构建动态与交互式Web应用的基石
  • R语言机器学习算法实战系列(十四): CatBoost分类算法+SHAP值 (categorical data gradient boosting)
  • vscode配色主题与图标库推荐
  • 本地缓存库分析(一):golang-lru
  • 厨艺交流平台:Spring Boot技术实践案例
  • 最佳B站视频下载工具 完全免费+支持8k画质!
  • Hadoop:yarn的Rust API接口
  • Nodejs使用pkg打包为可执行文件
  • 检索增强型生成模型RichRAG:为多面查询提供丰富回应
  • 【Nginx系列】关于一次请求超时的思考
  • Java CompletableFuture
  • 计算机网络——开放系统互连参考模型
  • Spring Boot框架下的厨艺社区开发
  • 解决微信OAuth2.0网页授权回调域名只能设置一个的问题
  • Docker部署项目
  • LeetCode 每日一题 2024/10/21-2024/10/27
  • day02|计算机网络重难点之HTTP请求报文和响应报文、HTTP的请求方式(方法字段)、GET请求和POST请求的区别