【华为练习题】十六进制字符串形式转为内存值形式

【华为练习题】十六进制字符串形式转为内存值形式

题目

功能:将十六进制字符串形式内容转为内存值形式(注:pBuffer的内存申请由调用者保证)

输入:szHexText:十六进制字符串形式,如: “6566”

输出:dataOutput,其中:内存值形式Buffer,即内存的{0x65, 0x66}

返回:返回转换成功的buffer的有效字节数

解答

#include <iostream>
#include <string>
using namespace std;

inline bool isRight(char c){
    return (c >= ‘0‘ && c <= ‘9‘) || (c >= ‘a‘ && c <= ‘f‘) || (c >=‘A‘ && c <= ‘F‘);
}

int hexToBin(string &s){
    string tmp;
    for (unsigned i = 0; i < s.size(); i++)
    {
        if (isRight(s[i]))
        {
            tmp.push_back(s[i]);
        }
    }
    s.clear();
    s.push_back(‘{‘);
    int count = 0;
    for (unsigned i = 0; i < tmp.size() - 1; i += 2)
    {
        count++;
        s += "0x";
        s.push_back(tmp[i]);
        s.push_back(tmp[i+1]);
        s.push_back(‘,‘);
    }
    s.pop_back();
    s.push_back(‘}‘);
    return count;
}
时间: 2024-10-27 12:16:53

【华为练习题】十六进制字符串形式转为内存值形式的相关文章

【华为练习题 】 字符串的最小周期(中级)

[华为练习题 ] 字符串的最小周期(中级) 题目 如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期.例如,abcabcabcabc以3为周期(注意,它也可以6和12为周期,结果取最小周期3).字符串的长度小于等于100,由调用者保证. 原型: int GetMinPeriod(char *inputstring); 输入参数: char * inputstring:字符串 返回值: int 字符串最小周期 分析 用指针向后寻找与第一个字符相同的字符,找到之后,验证两字符

在十六进制字符串与数值类型之间转换

1.获取‘字符串’中的每个字符的十六进制值. 2.获取与十六进制字符串中的每个值对应的字符.. 3.将十六进制string转换为整形. 4.将十六进制string转换为浮点型. 5.将字节数组转换为十六进制string. 此案例输入中的每个字符的是十六进制值.先将string分析为字符数组,然后对每个字符调用Inter32(char)以获取相应的数字值. static void Main(string[] args) { string input = "Hello World!"; c

将258.369 double值转为内存表示(科学计数法)

前言 庖丁解牛 - <<庄子>> 庖丁为文惠君解牛,手之所触, 肩之所倚, 足之所履, 膝之所踦, 砉然向然, 奏刀騞然, 莫不中音, 合于<桑林>之舞, 乃中<经首>之会. 文惠君曰:"嘻, 善哉! 技盍至此乎?" 庖丁释刀对曰:"臣之所好者, 道也, 进乎技矣.始臣之解牛之时, 所见无非牛者.三年之后, 未尝见全牛也.方今之时, 臣以神遇而不以目视, 官知止而神欲行.依乎天理, 批大郤, 导大窾, 因其固然, 技经肯綮之未尝

华为上机练习题--压缩字符串

题目: 通过键盘输入一串小写字母(a~z)组成的字符串.请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串. 压缩规则: 1.仅压缩连续重复出现的字符.比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc". 2.压缩字段的格式为"字符重复的次数+字符".例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz". 要求实现函数: void str

用Java语言实现对十六进制字符串异或运算

前言:好久没有写博客,最近一年感觉真是好忙,各种做不完的工作.相信很多上班族都会有这种感觉.最近对NFC进行写卡操作,需要计算一个校验位.一般情况下,校验位多数是由前几个字节进行异或运算所得. 现在我就先说一下我使用的场景: 把一个16字节的数据写到CPU卡(如交通卡)里面,最后一字节是校验码---前十五字节异或. 我开始从网上找了一些别人写的算法发现计算后结果不对,或者就是写的太复杂了,于是自己就写了一个,感觉也比较简单,现在分享给大家,希望一起交流一下. 第一节:什么是异或运算(主要摘自百度

华为练习题--社交好友判断

好友关系管理 描述: 现有一个社交网站,其好友推荐策略为:用户A和用户B不是好友,当二人的共同好友数量超过好友推荐阈值m时,就向A和B分别推荐为彼此好友. 本题任务为:对设定的m值,给定一组用户及各自好友列表,对这一组用户,反复自动应用上述好友推荐策略后(假设每次推荐都被采纳),求指定用户的最终好友列表. 注:好友关系是双向的,即:如果用户A是用户B的好友,那么用户B一定也是用户A的好友. 写一个程序,在社交网络中实现: 1)初始化社交网络 2)创建用户 3)增加指定两个用户之间的好友关系 4)

Java学习篇之---byte与十六进制字符串之间互转

byte与十六进制字符串之间互转 byte,字节类型,占用8bit空间,可用8位2进制数表示:十六进制,每位占有4bit空间,可用4位2进制数表示. 我们可以把每个byte类型转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果. 即byte用十六进制表示只占2位. 同理,相反的转换也是将两个16进制字符转换成一个byte. 根据以上原理,我们就可以将byte[] 数组转换为16进制字符串了,当然也可以将1

VC中,如何将十六进制字符串转换为十进制数?

原文链接:http://blog.csdn.net/bennyfun79/article/details/6934843 在程序中,我们有时需要将一个十六进制字符串转换为十进制数字.比如: 1 char *ptr="0x11"; 2 int n=0; 3 //我们想让n等于0x11,即17 通常我们在C中,想将一个字符串转换为一整形数字,通常会使用下面的方法: view plaincopy to clipboardprint? 1 char *ptr="123";

【华为练习题】乒乓球赛制

[华为练习题]乒乓球赛制 题目 国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及.其中11分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役.华华就是其中一位,他退役之后走上了乒乓球研究工作,意图弄明白11分制和21分制对选手的不同影响.在开展他的研究之前,他首先需要对他多年比赛的统计数据进行一些分析,所以需要你的帮忙. 华华通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在11分制和21分制下,双方的比赛结果(截至记录