C语言实现字节流与十六进制字符串的相互转换

C语言文件流(字节流) IO 操作(二) —— 初识“流”以及文件的顺序读写(fgetc / fgets / fscanf / fread ) 初步认识流的概念,以及介绍C语言的几种读/写文件的函数 阅读详情

本人博客将陆续迁至https://dpjeep.com 欢迎造访

 

原文出自:http://blog.youkuaiyun.com/qq387732471/article/details/7360988

 

 

//字节流转换为十六进制字符串
void ByteToHexStr(const unsigned char* source, char* dest, int sourceLen)
{
    short i;
    unsigned char highByte, lowByte;

    for (i = 0; i < sourceLen; i++)
    {
        highByte = source[i] >> 4;
        lowByte = source[i] & 0x0f ;

        highByte += 0x30;

        if (highByte > 0x39)
                dest[i * 2] = highByte + 0x07;
        else
                dest[i * 2] = highByte;

        lowByte += 0x30;
        if (lowByte > 0x39)
            dest[i * 2 + 1] = lowByte + 0x07;
        else
            dest[i * 2 + 1] = lowByte;
    }
    return ;
}

//字节流转换为十六进制字符串的另一种实现方式
void Hex2Str( const char *sSrc,  char *sDest, int nSrcLen )
{
    int  i;
    char szTmp[3];

    for( i = 0; i < nSrcLen; i++ )
    {
        sprintf( szTmp, "%02X", (unsigned char) sSrc[i] );
        memcpy( &sDest[i * 2], szTmp, 2 );
    }
    return ;
}

//十六进制字符串转换为字节流
void HexStrToByte(const char* source, unsigned char* dest, int sourceLen)
{
    short i;
    unsigned char highByte, lowByte;
    
    for (i = 0; i < sourceLen; i += 2)
    {
        highByte = toupper(source[i]);
        lowByte  = toupper(source[i + 1]);

        if (highByte > 0x39)
            highByte -= 0x37;
        else
            highByte -= 0x30;

        if (lowByte > 0x39)
            lowByte -= 0x37;
        else
            lowByte -= 0x30;

        dest[i / 2] = (highByte << 4) | lowByte;
    }
    return ;
}

 

 

 

 

 

c语言16进制字符串转字节数组 今天看代码看到两种16进制字符串转字节数组的方法,现贴出来相当于做个笔记了。 第一种: 1 #include<string.h> 2 #include<stdio.h> 3 4 void hex_str_to_byte(char *hex_str, int length, unsigned char *result) 5 { 6 char ... 阅读详情

相关推荐

C语言字符串转换为16进制

这两种方法都可以将C语言字符串逐个字符转换为对应的16进制表示。第一种方法使用了sprintf函数来格式化输出,第二种方法则是通过强制类型转换将字符转换为无符号字符(unsigned char),然后使用printf函数输出对应的十六进制表示。方法二:自定义转换函数。

m0_46376834的博客 1万+

C语言 字符转换为十六进制

C语言中可以使用函数sprintf()来将字符转换为十六进制表示,代码示例如下: #include <stdio.h> int main() { char c = 'A'; char hex[10]; sprintf(hex, "%x", c); printf("字符 '%c' 的十六进制表示为:%s\n", c, hex); return 0...

weixin_42577735的博客 2357

用LightRAG+Ollama搭建本地知识库:从文档上传到智能问答的完整流程

本文详细介绍了如何利用LightRAG与Ollama构建企业级本地知识库,涵盖从文档预处理到智能问答的完整流程。通过实战案例展示,该方案能高效处理海量文档,实现语义搜索与知识图谱关联分析,显著提升信息检索效率。特别适合金融、医疗等领域的技术团队快速搭建智能知识管理系统。

weixin_42535461的博客 188

c语言字符串转换字节流,C语言实现字节流与十六进制字符串的相互转换

//字节流转换为十六进制字符串void ByteToHexStr(const unsigned char* source, char* dest, int sourceLen) {short i;unsigned char highByte, lowByte;for (i = 0; i < sourceLen; i++){highByte = source[i] >> 4;low...

weixin_42298927的博客 1847

1991-2020年气候背景数据集

2011 年,国家气象信息中心对 1951-2010 年 2400 余个地面站气温、气压、降水、湿度、日照等 19 大要素项的定时观测资料和日极值资料中由数字化过程中引起的系统性问题(例如数字化遗漏、整段拷贝等问题)进行质量检测、质量控制和错误数据的更正,形成较高质量的地面基础资料集。1991-2020年中国地面气候值数据集提供了中国2438个站点的气温、降水、气压、风向风速、相对湿度、水汽压、云、天气现象、能见度、蒸发、积雪、地温、冻土、日照共14个要素的气候背景信息。数据时间:30年平均。

地球资源数据云的官方博客 1597

看完让你的RSA提升一个台阶 [GKCTF 2021]RRRRsa

我是,今天我给大家分享一个关于RSA的题目,带大家领略的魅力。今天开始前,我们先学习一下。

m0_62102520的博客 852

c语言实现字节转换为字符串,C语言实现字节流与十六进制字符串的相互转换

在调试串口常常碰到须要把读出来的hex data转化成string类型输出,记录下来web//字节流转换为十六进制字符串//itoa,16进制变字符串,1字节变两字节svgvoid ByteToHexStr(const unsigned char* source, char* dest, int sourceLen){short i;unsigned char highByte, lowByte;...

weixin_42307002的博客 1538

YOLOv8交通监控全方案:精准车辆计数+违章(闯红灯/压线)识别,拿来就落地!

作为深耕计算机视觉落地的开发者,我见过太多交通监控的“伪智能”——传统系统要么车辆计数不准(漏计/重复计数),要么违章识别滞后(靠人工回看录像),甚至连“闯红灯、压线”这类常见违章都无法实时判定,完全满足不了实际交通管理需求。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 646

c 语言byte 转字符串,C语言实现字节流与十六进制字符串的相互转换

在调试串口经常碰到需要把读出来的hex data转化成string类型输出,记录下来//字节流转换为十六进制字符串//itoa,16进制变字符串,1字节变两字节void ByteToHexStr(const unsigned char* source, char* dest, int sourceLen){short i;unsigned char highByte, lowByte;for (i...

weixin_33788825的博客 1154

修复漏洞Windows 2012 Server R2(CVE-2016-2183)、(CVE-2015-2808)、(CVE-2013-2566)

【代码】修复漏洞Windows 2012 Server R2(CVE-2016-2183)、(CVE-2015-2808)、(CVE-2013-2566)

路~可以走过 2772

195、大模型蒸馏与压缩:知识蒸馏与VLA模型轻量化

折腾完这一整套流程,最大的感悟是:知识蒸馏不是简单的模型压缩,而是知识迁移的工程艺术。每一步都有坑,每个参数都可能影响最终性能。给后来者的建议是:先别急着上蒸馏,把teacher模型的推理延迟和显存占用测清楚,确定瓶颈在哪里——是计算量太大还是内存带宽不够,这决定了你该用蒸馏还是量化还是剪枝。蒸馏训练时一定要监控每一层的特征对齐loss,别只看总loss。如果某一层的对齐loss特别高,说明student在这一层学歪了,需要调整该层的损失权重或者增加该层的投影头容量。

sundong_81的博客 111
上一篇: 使用python编写的监听端
下一篇: SecureCRT无法连接Vmware下的Linux虚拟机
pingd
博客等级 码龄15年 60粉丝 54原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值