C++笔记-char*存储的二进制转成long long十进制(读串口的时候经常用到)
目录
背景
概念及源码
背景
在读串口数据的时候,很多时间读取的是二进制数据,很多情况下都是uchar的数组,这数字一般比int(4字节)大比long long(8字节)小。
如下例子:
今天就在远程给客户敲代码,花了点时间,在此记录下。以后直接可以拷贝。
概念及源码
这里逻辑如下。
把为满足64位的数据补充为64位。
使用pow()进行累加。
代码如下:
#include <iostream>
#include <math.h>
using namespace std;int main(int argc, char *argv[])
{char *dataPtr = "1111111111111111";cout << dataPtr << endl;string str = dataPtr;string fullStr;for(int i = 0; i < 8 * 8; i++)fullStr += "0";fullStr += str;cout << fullStr << endl;long long data = 0;int lenth = fullStr.length();const char *p = fullStr.c_str();for(int i = 0; i < lenth; i++){if(p[lenth - 1 - i] != '0'){data += pow(2, i);}}cout << data << endl;return 0;
}
程序运行截图如下:
第一行是原始数据。
第二行是补充数据。
最后一行是转10进制后的数据。
换一串数据看看。
C++笔记-char*存储的二进制转成long long十进制(读串口的时候经常用到)相关推荐
- 汇川小型PLC梯形图编程系列教程(七):数值存储与二进制数据知识详解
原文链接:汇川小型PLC梯形图编程系列教程(七):数值存储与二进制数据知识详解 PLC数据存储原理简介 H123U小型PLC内部采用的是32位的处理器,PLC中的数据处理和电脑中的数据处理基本是一致的 ...
- java代码二进制转为十六进制_Java 中二进制转换成十六进制的两种实现方法
Java 中二进制转换成十六进制的两种实现方法 每个字节转成16进制,方法1 /** * 每个字节转成16进制,方法1 * * @param result */ private static Stri ...
- 《Linux就该这么学》培训笔记_ch06_存储结构与磁盘划分
<Linux就该这么学>培训笔记_ch06_存储结构与磁盘划分 文章最后会post上书本的笔记照片. 文章主要内容: Linux系统的文件存储结构(FHS标准) 物理设备命名规则(udev ...
- c语言存储类型关键字作用,c语言学习笔记.关键字.存储类型关键字等
关键字const 1.修饰变量. 修饰的对象为常量,只读. 2.修饰指针. const 也可以和指针变量一起使用,这样可以限制指针变量本身,也可以限制指针指向的数据. const 离变量名近就是用来修 ...
- 把图片转换成二进制--把二进制转换成图片
把图片转换成二进制--把二进制转换成图片 private void button1_Click(object sender, EventArgs e) { st ...
- 二进制转换成十六进制输出的C代码
(本博客只提供很厉害的方法,没有代码) 项目需求是需要把一个字节(8bit)的二进制数转换成一个十六进制的数值,然后发送给上位机: 我自己试着编写代码,思路是把这个8bit的二进制数存放到一个数组里面 ...
- 如何把char类型的数字字符转换成int类型
近来面试遇到一个问题,通过控制台输入一个12位的数字,然后进行一些计算,然后被困在如何把char类型的数字转换成int类型.通过搜索,找到两个解决办法. 1.把char型转换成int类型 for(in ...
- Java将图片转换成二进制,将二进制转换成图片
Java将图片转换成二进制,将二进制转换成图片 static BASE64Encoder encoder = new sun.misc.BASE64Encoder();static BASE64Dec ...
- 简单的利用栈 将二进制转换成十六进制
将刚刚的二进制转换成八进制的程序改改就行了,如果有能读懂刚刚程序的人,这个so easy 就是换几个数,我就不多解释了 #include <stdio.h> #include <st ...
最新文章
- “数学不好,干啥都不行!”骨灰级程序员:其实你们都是瞎努力
- 不得自行对涉密计算机进行格式化,保密资格认证-涉密人员考试试题
- JAVA作业——JAVA课程的总结及学习计划
- P3261-[JLOI2015]城池攻占【左偏树】
- icmp时间戳请求和应答程序实现_ICMP报文详解之ping实现
- 及时复盘的好处_如何做好2020的年终复盘?
- 棋牌游戏服务器设计(1)
- linux 引导原理 pdf,linux深度开发原理.pdf
- hdu3033(变形分组背包)
- 细说OSI七层协议模型及OSI参考模型中的数据封装过程?
- 7.10 添加房间参数
- FreeTextBox使用
- 51单片机通过WIFI模块ESP8266控制四路继电器
- 图像mnf正变换_PIE SDK最小噪声变换
- javaSE之多线程vip插队
- 计算机毕业生毕业论文写作及选题方向
- 地下城堡游戏小脚本儿——自动炼金
- 基于Python,从零开始,裸写一套期权定价程序
- 时尚手表品牌PaulHewitt,手表手链超时尚品牌礼物
- 51 nod 1010
热门文章
- 史上最简单的3D森林
- 2007-11-7学习EXT第一天:EXT简介
- [新功能]Blog首页仅列出标题
- 你真的了解 “开源” 么?请查收【保姆级】开源百科
- 那个傻子的网站突然打不开虚拟光驱
- 【飞秋】Asp.net MVC2 model验证 看似美好,实则让人失望。
- 一条来自 GitHub 重磅消息!
- mysql my.cnf 配置_MySQL——my.cnf参数设置说明
- 两个datatable合并 主键一样覆盖_MySQL 建表为啥还设置个自增 id ?用流水号当主键不正好么?...
- 监督学习 | 集成学习 之Bagging、随机森林及Sklearn实现