C-switch case之如何巧妙判断范围区域

2023-11-07

当判断整数时

  • 示例: 判断整数范围
#include <stdio.h>

int main()
{    
    unsigned char buf[6]={0x00,0x07,0x11,0x60,0x61,0x66};
    
    for(int i=0;i<6;i++)
    switch(buf[i])
    {
        case 0x00 ... 0x10: printf("buf[%d] is 0x0 ~0x10\n",i);  break;
        case 0x11 ... 0x20: printf("buf[%d] is 0x11~0x20\n",i);  break;
        case 0x30 ... 0x60: printf("buf[%d] is 0x30~0x60\n",i);  break;
        case 0x61 ... 0xff: printf("buf[%d] is 0x61~0xff\n",i);  break;
    } 
} 

打印:

 

当判断字符时

  • 示例: 将"0x00"~"0xff"转化为数值0x00~0xff
#include <stdio.h>


int main()
{    
    char buf[6][6]={"0xff","0X02","0X1f","0xf1","0xa1","0Xb0"};
for(int i=0;i<6;i++) if(buf[i][0]=='0'&&(buf[i][1]=='x' || buf[i][1]=='X')) //匹配前缀 { unsigned char val=0; int err=0; for(int j=2;j<4;j++) switch(buf[i][j]) { case '0' ... '9' : val= val*16 + (buf[i][j]-'0'); break; case 'a' ... 'f' : val= val*16 + (buf[i][j]-'a'+10); break; case 'A' ... 'F' : val= val*16 + (buf[i][j]-'A'+10); break; default : err =1; break; }
if(!err) printf("buf[%d] = 0X%02X\n",i,val); else printf("buf[%d] ERR \n",i); } else printf("buf[%d] ERR \n",i); }

打印:

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C-switch case之如何巧妙判断范围区域 的相关文章

随机推荐

  • js 浮动窗效果

    源代码
  • md模板练习

    文本样式 强调文本 强调文本 加粗文本 加粗文本 标记文本 删除文本 引用文本 H2O is是液体 210 运算结果是 1024 列表 项目 项目 项目 项目1 项目2 项目3 计划任务 完成任务 链接 链接 link 图片 带尺寸的图片
  • offer审批被刷的可能性_字节跳动音视频面试一面挂!!!复习半月再战,转拿腾讯offer!...

    缘起 字节跳动的音视频面准备了半个月的样子 当时投了很多厂 但是主要目标还是进字节 但是万万没想到 居然一面就没了下文 一开始觉得起码能撑到个二面 三面 所以有些措不及防 在期间 也陆陆续续收到了其他公司的几个offer 但是都是些小公司
  • 通过JAVA代码对yaml文件进行增加、修改的操作

    近期有个需求 需要通过java代码对yaml文件进行修改或新增 对pom xml文件进行添加依赖或者删除依赖 首先介绍对yaml文件的操作 1 需要引入jar包
  • Java Remote Debug

    Java Remote Debug 简介 如果是本地调试 那么在IDE工具 比如Eclipse 的帮助下 是非常容易的 但是如果想对部署在测试 生产环境中的程序进行调试时 你会怎么办呢 在这种情况下 源码已经被编译为中间代码 因此本地调试肯
  • windeployqt.exe的使用与避坑(windows平台)

    1 介绍 windeployqt exe是Qt自带的工具 用于创建应用程序发布包 简单来说 这个工具可以自动地将某程序依赖的库 资源拷贝到其所在目录 防止程序在其他电脑上运行报找不到库的错误 这里贴上官方文档 https doc qt io
  • 零死角玩转stm32-高级篇之FatFs

    零死角玩转stm32 高级篇之FatFs Rev R0 09 2013年08月05日 教程 评论数 1 被围观 1 579 2 FatFs Rev R0 09 2 1 实验描述及工程文件清单 实验描述 MicroSD卡文件系统 FATFS
  • 前端精度丢失处理

    前端操作数据时 如果数据超出一定范围会出现精度丢失的问题 这是因为 在传输过程中 数据类型被转换成Number Number的精度范围在2 53之间 即 9007199254740991 9007199254740991 超出范围就会造成精
  • visual studio code搭建Java环境 - 一步一个脚印详细教程

    visual studio code搭建Java环境 一 软件安装 二 添加环境变量 三 vscode配置 1 软件本身设置 2 编译环境配置 后记 一 软件安装 visual studio code下载链接 https azure mic
  • java 根据 SVN changeLog 文件 生成增量升级包

    近日在做项目的时候 遇到了个问题 因为本地环境与生产环境 不一致 所以修改之后的代码不能整体打包 放到生产环境 而是只能以增量包的形式升级 手动打包 费时费力 而且容易出错 于是参照网上一些博客开发了一个增量包打包工具 好闲言少叙 上代码
  • 面试了这么多场,“ 进程间的通信 ” 真是从不缺席,小伙伴们赶快重视起来!!

    进程间通信 1 管道 2 消息队列 3 共享内存 4 信号量 5 信号 6 Socket 套接字 每个进程的用户地址空间都是独立的 一般而言是不能互相访问的 但内核空间是每个进程都共享的 所以进程之间要通信必须通过内核 在内核中开辟一块缓冲
  • logback日志配置实例

    在pom xml文件中引入依赖
  • 数据分析学习总结笔记07:方差分析

    数据分析学习总结笔记07 方差分析 1 方差分析概述 1 1 方差分析简介 1 2 方差分析基本思想和原理 1 3 方差分析的基本假设 2 单因素方差分析 One way ANOVA 2 1 单因素方差分析概念 2 2 单因素方差分析的原理
  • 西门子PLC的S7协议报文解析说明

    我们以S7的1500系列来查看握手和读取 写入 字Word或者位Bit 命令报文 以下报文不做说明时都是十六进制字节 西门子PLC需要连接成功后发送两次握手命令方可进行读写通信 西门子PLC的S7协议的头由四个字节组成 第一个字节数固定为0
  • C#实现全盘扫描,找到符合要求的文件,并把路径写入到TXT中

    好久没更新文章了 来水一篇 最近领导安排了个任务 让把服务器上符合要求的文件的路径找出来 windos自带的搜索功能太慢了 everything不想下载 想着自己实现一个 实现完成发现速度也不是很慢 实现思路 1 先把电脑中的所有驱动器名称
  • 【Linux】socket 编程基础

    文章目录 网络间的通信 socket 是什么 1 socket 套接字 2 套接字描述符 3 基本的 socket 接口函数 3 1 头文件 3 2 socket 函数 3 3 bind 函数 struct sockaddr 主机序列与网络
  • [亲测可用]springBoot调用对方webService接口的几种方法示例

    目录 前言 一 需要用到的maven 二 如何调用webservice接口 调用方法一 调用方法二 myEclipse生成的例子 idea生成的例子 前言 平常我们开发调用接口一般会用到几种数据格式 比如有restful的 这个是目前最流行
  • QT5在首次连接MYSQL时候找不到头文件问题

    我碰到的问题是这样的 在我之前写好 没有报错 的QT程序内添加MYSQL 但是报错 error C1083 无法打开包括文件 QSqlDatabase No such file or directory 在网上查找后发现没有添加对应的模块
  • pandas行列转换的4大技巧

    公众号 尤而小屋作者 Peter编辑 Peter 大家好 我是Peter 本文介绍的是Pandas中4个行列转换的方法 包含 melt 转置T或者transpose wide to long explode 爆炸函数 最后回答一个读者朋友问
  • C-switch case之如何巧妙判断范围区域

    当判断整数时 示例 判断整数范围 include