1、传入_T("AAAABBBBCC"),返回_T("AA AA BB BB CC")

CString FormatPacket(CString packet_str)
{
  packet_str.Replace(_T(" "),_T(""));
  CString packet_backspace_str;//带空格的包
  CString temp_str;//临时存一个十六进制
  int j = 0;
  /*这里加上空格*/
  for (int i = 0;i<packet_str.GetLength();i++)
    {
    temp_str = packet_str.GetAt(i++);
    temp_str += packet_str.GetAt(i);
    temp_str += _T(" ");
    packet_backspace_str += temp_str;
  }
  return packet_backspace_str;
}

2、传入_T("AAAABBBBCC"),返回_T("AAAABBBBCCXX"),XX是校验和

CString PutCheckByte(CString packet_str,BOOL RESULT4TAX)//
{
  CString temp_str;
  int packet_lenth_int = packet_str.GetLength();
  unsigned short sum =0;
  for(int i=0;i<packet_lenth_int;i++)
    {
    temp_str = packet_str.GetAt(i++);
    temp_str += packet_str.GetAt(i);
    sum += wcstol(temp_str,NULL,16);
    }
  sum = sum % 256;
  CString checksum_result;
  checksum_result.Format(_T("%02x"),sum);
  packet_str += checksum_result;
  return packet_str;//返回的是整个报文

}

3、传入_T("你好123"),返回7,这个字符串实际所占长度

int GetByteLenth(CString unicode_str)
{
  int lenth_int;//字符数,5
  lenth_int = unicode_str.GetLength();
  int result_int = 0;
  for (int i=0;i<lenth_int;i++)
    {
    if((unicode_str.GetAt(i) >= 48 && unicode_str.GetAt(i) <= 57) ||(unicode_str.GetAt(i) >= 65 && unicode_str.GetAt(i) <= 90)||(unicode_str.GetAt(i)     >= 97 && unicode_str.GetAt(i) <= 122))
      result_int += 1;
    else
      result_int += 2;
    }
  return result_int;
}

4、传入字节数组,BYTE array[10],返回带空格CString

CString UChar2CString(BYTE* data_byte,int count)//count代表data_byte的字节数
{
  CString temp_str;
  CString result_str;
  temp_str = _T("");
  result_str = _T("");
  for (int i=0;i<count;i++)
    {
    temp_str.Format(_T("%02x"),data_byte[i]);
    result_str += temp_str;
    result_str += _T(" ");
    }
  result_str = result_str.MakeUpper();
  return result_str;
}

mfc报文相关算法的更多相关文章

  1. TCP系列39—拥塞控制—2、拥塞相关算法及基础知识

    一.拥塞控制的相关算法 早期的TCP协议只有基于窗口的流控(flow control)机制而没有拥塞控制机制,因而易导致网络拥塞.1988年Jacobson针对TCP在网络拥塞控制方面的不足,提出了& ...

  2. 二叉树-你必须要懂!(二叉树相关算法实现-iOS)

    这几天详细了解了下二叉树的相关算法,原因是看了唐boy的一篇博客(你会翻转二叉树吗?),还有一篇关于百度的校园招聘面试经历,深刻体会到二叉树的重要性.于是乎,从网上收集并整理了一些关于二叉树的资料,及 ...

  3. MFC 状态栏相关使用(CStatusBar & CStatusBarCtrl)

    原文:MFC 状态栏相关使用(CStatusBar & CStatusBarCtrl),沙漠紫风铃 本文介绍了MFC中和状态栏相关的用法: 在MFC的的单文档应用中,在建好应用程序之后,CMa ...

  4. 数据结构(C语言版)顺序栈相关算法的代码实现

    这两天完成了栈的顺序存储结构的相关算法,包括初始化.压栈.出栈.取栈顶元素.判断栈是否为空.返回栈长度.栈的遍历.清栈.销毁栈.这次的实现过程有两点收获,总结如下: 一.清楚遍历栈的概念 栈的遍历指的 ...

  5. [联赛可能考到]图论相关算法——COGS——联赛试题预测

    COGS图论相关算法 最小生成树 Kruskal+ufs int ufs(int x) { return f[x] == x ? x : f[x] = ufs(f[x]); } int Kruskal ...

  6. [java,2017-05-15] 内存回收 (流程、时间、对象、相关算法)

    内存回收的流程 java的垃圾回收分为三个区域新生代.老年代. 永久代 一个对象实例化时 先去看伊甸园有没有足够的空间:如果有 不进行垃圾回收 ,对象直接在伊甸园存储:如果伊甸园内存已满,会进行一次m ...

  7. 【STL学习】堆相关算法详解与C++编程实现(Heap)

    转自:https://blog.csdn.net/xiajun07061225/article/details/8553808 堆简介   堆并不是STL的组件,但是经常充当着底层实现结构.比如优先级 ...

  8. UCI机器学习库和一些相关算法(转载)

    UCI机器学习库和一些相关算法 各种机器学习任务的顶级结果(论文)汇总 https://github.com//RedditSota/state-of-the-art-result-for-machi ...

  9. 采样方法(二)MCMC相关算法介绍及代码实现

    采样方法(二)MCMC相关算法介绍及代码实现 2017-12-30 15:32:14 Dark_Scope 阅读数 10509更多 分类专栏: 机器学习   版权声明:本文为博主原创文章,遵循CC 4 ...

随机推荐

  1. VC++ Debug显示指针所指的array内容

    If you expand a pointer and you only get a single item, just add ",n" to the entry in the ...

  2. Poj1482

    It's not a Bug, It's a Feature! Time Limit: 5000MS   Memory Limit: 30000K Total Submissions: 1428   ...

  3. Html5-draggable元素拖动

    Html5元素拖动 在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放. Internet Explorer 9+, Firefox, Opera, Chrome, 和 Safari 支持拖动 ...

  4. PAT 1013 Battle Over Cities(并查集)

    1013. Battle Over Cities (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue It ...

  5. ClickHouse RPM packages installation from packagecloud.io

    Table of Contents Introduction Script-based installation Install script Install packages after scrip ...

  6. c# WinForm英雄联盟挂机源码及实现原理

    主要功能:全自动化英雄联盟挂机,游戏中会在原地放技能保持不掉线状态,游戏结束自动重新开始,自动选择英雄,可以晚上挂机刷人机: 缺陷:没怎么完善,如果掉线或者游戏崩溃网络断了软件会自动停止操作,使用时间 ...

  7. dist\_wepylogs.js

    console.log('WePY开启错误监控'); console.warn("CLI报错:WARNING IN : src\pages\cloundAd.vue\n[xmldom war ...

  8. 把配置和环境解耦 eliminate “works on my machine” problems when collaborating on code with co-workers docker架构与解决的问题

    Docker实践 - 懒人的技术笔记 - 博客频道 - CSDN.NET  http://blog.csdn.net/lincyang/article/details/43055061 Docker直 ...

  9. SpringMVC 之 RESTful 风格的增删改查

    1. 视图和视图解析器 视图解析器 请求处理方法执行完成后,最终返回一个ModelAndView对象,对于返回String,View 或 ModelMap 等类型的处理方法, SpringMVC 也会 ...

  10. HTTP 协议介绍

    HTTP 协议规定了浏览器和服务器之间互相通信的规则. 请求协议: 规定了客户端发送给服务器的内容格式 响应协议: 服务器发送给客户端的内容格式 请求协议 请求协议格式: 请求行 多个请求头信息(属性 ...