精华内容
下载资源
问答
  • C2B转换助手是一款可以将C语言数组转换为BIN文件工具,可以将十六进制的数组进行转换,支持大的数组进行转换,降低对MCU的FLASH占用。转换是数组不要添加多余的符号,否则影响转换!输入数组最好遵循这样的结构:...

    C2B转换助手是一款可以将C语言数组转换为BIN文件工具,可以将十六进制的数组进行转换,支持大的数组进行转换,降低对MCU的FLASH占用。转换是数组不要添加多余的符号,否则影响转换!

    输入数组最好遵循这样的结构:const unsigned char b2c[10]={0XF8,0XBD,0XF4,0X9C,0XAF,0X73,0XEC,0X5A,0XAB,0X52,};bin文件的内容(用winhex查看)为:0XF8,0XBD,0XF4,0X9C,0XAF,0X73,0XEC,0X5A,0XAB,0X52。就是数组中元素的值!

    C2B转换助手注意事项

    1、本软件默认打开.txt文件,并支持.c文件和其他任意文件的自选打开选项。

    2、本软件支持8~32位任意16进制任意组合的数组的转换。当每个元素占用多个字节的时候,是以高字节在后,低字节在前的顺序排列在.bin文件的。

    3、本软件通过判断'0X'/'0x'以及','来确定数组的开始和结束,所以务必不要添加多余的类似符号否则可能导致转换出错。

    4、如果转换过程中弹出非法的数据格式的提示,请检查数组是否正确,并丢弃此次转换结果。

    5、数组的末尾必须跟一个','作为结束符,否则转换结果将少一个。

    6、如有任何疑问在论坛提问。

    C2B转换助手使用教程

    1、首先在比克尔下载站下载C2B转换助手,并且解压,打开exe文件:

    0ff6c710505d855ba7a873f1856b72fa.png

    2、点击打开,查找文件,打开文件;

    1ac87e6840359807e2ca666ab7697dcc.png

    3、点击转换,可以快速将数组转换为同名的bin文件,并且保存!

    展开全文
  • 保存下来的点云数据分别pcd(Binary压缩),pcd(ASCII压缩),ply,bin四种。占用内存大小由小到大如下:bin (Binary压缩) (ASCII压缩) ; 如上四个文件大小分别188.2kb ,每个点云数据都不大,毕竟是tof数据嘛...

    本文基于ros将rosbag中的点云数据一帧一帧保存成对应的文件,并比对各个文件占用空间大小。
    阉割版的如下,能用,但是少了一些功能,旨在记录保存下来的各种点云文件。
    废话不说,直接上代码:

    #include <ros/ros.h>
    #include <sensor_msgs/PointCloud2.h>
    #include <pcl/io/io.h>
    #include <pcl/io/pcd_io.h>
    #include <pcl/io/ply_io.h>
    #include <pcl/point_types.h>
    #include <pcl_conversions/pcl_conversions.h>
    #include <pcl/filters/voxel_grid.h>
    #include <nav_msgs/Odometry.h>
    #include <fstream>
    #include <iostream>
    #include <sstream>
    #include <string>
    #include <iomanip>
    std::string FrontPcd_path;
    
    void FrontPoint_callback(const sensor_msgs::PointCloud2::ConstPtr &cloud_msg)
    {
        ros::Time time = cloud_msg->header.stamp;
        pcl::PointCloud<pcl::PointXYZI> tmp;
        pcl::fromROSMsg(*cloud_msg, tmp);
        double tt = time.toSec();
      
        //save to pcd file
        pcl::io::savePCDFileBinary(FrontPcd_path + std::to_string(tt) + ".pcd", tmp);
        pcl::io::savePCDFileASCII(FrontPcd_path + std::to_string(tt) + ".pcd", tmp);
        pcl::io::savePLYFile(FrontPcd_path + std::to_string(tt) + ".ply", tmp);
        //save to bin file
        std::ofstream out;
        std::string save_filename = FrontPcd_path + std::to_string(tt) + ".bin";
        out.open(save_filename, std::ios::out | std::ios::binary);
        std::cout << save_filename << " saved" << std::endl;
        int cloudSize = tmp.points.size();
        for (int i = 0; i < cloudSize; ++i)
        {
            float point_x = tmp.points[i].x;
            float point_y = tmp.points[i].y;
            float point_z = tmp.points[i].z;
            out.write(reinterpret_cast<const char *>(&point_x), sizeof(float));
            out.write(reinterpret_cast<const char *>(&point_y), sizeof(float));
            out.write(reinterpret_cast<const char *>(&point_z), sizeof(float));
        }
        out.close();
    }
    
    
    int main(int argc, char **argv)
    {
        ros::init(argc, argv, "read_rosbag");
        ROS_INFO("Start Read Rosbag and save it as pcd wiht txt");
        ros::NodeHandle nh;
    
        std::string front_lidar_topic;
    
        nh.param("front_lidar_topic", front_lidar_topic, std::string("/tof_cloud"));
        nh.param("FrontPcd_path", FrontPcd_path, std::string("/home/sc/catkin_ws/src/read_rosbag/FrontLidar/"));
    
        ros::Subscriber sub_cloud1 = nh.subscribe(front_lidar_topic, 100, FrontPoint_callback);
    
        ros::MultiThreadedSpinner spinner(1);
        spinner.spin();
    
        return 0;
    }
    

    CMakeLists.txt如下:

    cmake_minimum_required(VERSION 3.0.2)
    project(read_rosbag)
    
    # add_compile_options(-std=c++11)
    
    find_package(catkin REQUIRED COMPONENTS
      nav_msgs
      pcl_conversions
      pcl_ros
      roscpp
      sensor_msgs
      std_msgs
    )
    
    catkin_package(
     INCLUDE_DIRS include
    #  LIBRARIES read_rosbag
     CATKIN_DEPENDS nav_msgs pcl_conversions pcl_ros roscpp sensor_msgs std_msgs
     DEPENDS system_lib
    )
    include_directories(
    # include
      ${catkin_INCLUDE_DIRS}
    )
    
    add_executable(${PROJECT_NAME} src/read_rosbag.cpp)
    target_link_libraries(${PROJECT_NAME}
      ${catkin_LIBRARIES}
    )
    
    

    就一个很简单的ros功能包,自己写的,有了代码其实其他的可以自己补全。
    保存下来的点云数据分别为pcd(Binary压缩),pcd(ASCII压缩),ply,bin四种。占用内存大小由小到大如下:bin < pcd(Binary压缩) < pcd(ASCII压缩) < ply;在这里插入图片描述在这里插入图片描述
    如上四个文件大小分别为188.2kb < 255kb < 685.3kb < 685.8kb,每个点云数据都不大,毕竟是tof数据嘛!

    展开全文
  • hex文件转换为bin文件C语言实现

    千次阅读 2021-05-20 16:01:23
    #include /********************************************************************************input:c:单个字符('0'~'9' 'a'~'f', 'A'~'F')output:单个字符转化单个字符***************************************...

    #include /********************************************************************************

    input:

    c:单个字符('0'~'9' 'a'~'f', 'A'~'F')

    output:

    单个字符转化为单个字符

    ********************************************************************************/

    static uint8_t HexCharToBinBinChar(char c)

    {

    if (c >= '0' && c <= '9')

    return c - '0';

    else if (c >= 'a' && c <= 'z')

    return c - 'a' + 10;

    else if (c >= 'A' && c <= 'Z')

    return c - 'A' + 10;

    return 0xff;

    }

    /********************************************************************************

    input:

    p: 两个文本字符

    output:

    转化为1个字节

    ********************************************************************************/

    static uint8_t Hex2Bin(const char *p)

    {

    uint8_t tmp = 0;

    tmp = HexCharToBinBinChar(p[0]);

    tmp <<= 4;

    tmp |= HexCharToBinBinChar(p[1]);

    return tmp;

    }

    /********************************************************************************

    input:

    src: hex单行字符串

    p->type: 如果函数返回结果正确,这里就存着转化后的类型

    p->len: 如果函数运行正确,这里就存着转化后的bin数据长度

    p->data: 如果函数运行正确,长度并且不为0,该指针就只想转化后的数据

    p->addr[0]: 如果函数返回结果正确,这里就存着地址的低字节

    p->addr[1]: 如果函数返回结果正确,这里就存着地址的低字节

    output:

    返回hex格式流分析的结果

    ********************************************************************************/

    static RESULT_STATUS HexFormatUncode(const char *src, BinFarmat *p)

    {

    uint8_t check = 0, tmp[4], binLen;

    uint16_t hexLen = strlen(src);

    uint16_t num = 0, offset = 0;

    if (hexLen > HEX_MAX_LENGTH)//数据内容过长

    return RES_DATA_TOO_LONG;

    if (hexLen < HEX_MIN_LEN)

    return RES_DATA_TOO_SHORT;//数据内容过短

    if (src[0] != ':')

    return RES_NO_COLON;//没有冒号

    if ((hexLen - 1) % 2 != 0)

    return RES_LENGTH_ERROR;//hexLen的长度应该为奇数

    binLen = (hexLen - 1) / 2;//bin总数据的长度,包括长度,地址,类型校验等内容

    while (num < 4)

    {

    offset = (num << 1) + 1;

    tmp[num] = Hex2Bin(src + offset);

    check += tmp[num];

    num++;

    }

    p->len = tmp[0];//把解析的这些数据保存到结构体中

    p->addr = tmp[1];

    p->addr <<= 8;

    p->addr += tmp[2];

    p->type = tmp[3];

    while (num < binLen)

    {

    offset = (num << 1) + 1; //保存真正的bin格式数据流

    p->data[num - 4] = Hex2Bin(src + offset);

    check += p->data[num - 4];

    num++;

    }

    if (p->len != binLen - 5)//检查hex格式流的长度和数据的长度是否一致

    return RES_LENGTH_ERROR;

    if (check != 0)//检查校验是否通过

    return RES_CHECK_ERROR;

    return RES_OK;

    }

    RESULT_STATUS HexFile2BinFile(char *src, char *dest)

    {

    FILE *src_file, *dest_file;

    uint16_t addr_low = 0;

    uint32_t addr_hign = 0;

    char buffer_hex[600];

    uint8_t buffer_bin[255];

    BinFarmat gBinFor;

    RESULT_STATUS res;

    gBinFor.data = buffer_bin;

    src_file = fopen(src, "r");//以文本的形式打开一个hex文件

    if (!src_file)

    return RES_HEX_FILE_NOT_EXIST;

    dest_file = fopen(dest, "wb");//以二进制写的方式打开文件,文件不存在也没影响

    if (!dest_file)

    return RES_BIN_FILE_PATH_ERROR;

    fseek(src_file, 0, SEEK_SET); //定位到开头,准备开始读取数据

    while (!feof(src_file))

    {

    fscanf(src_file, "%s

    ", buffer_hex);

    res = HexFormatUncode(buffer_hex, &gBinFor);

    if (res != RES_OK)

    {

    fclose(src_file);

    fclose(dest_file);

    return res;

    }

    switch (gBinFor.type)

    {

    case 0://数据记录

    addr_low = gBinFor.addr;

    //数据指针偏移

    fseek(dest_file, addr_low + addr_hign, SEEK_SET);

    if (fwrite((const uint8_t*)gBinFor.data, gBinFor.len, 1, dest_file) != 1)

    {

    fclose(src_file);

    fclose(dest_file);

    return RES_WRITE_ERROR;

    }

    break;

    case 1: //数据结束

    fclose(src_file);

    fclose(dest_file);

    return RES_OK;

    case 2:

    addr_hign = ((uint32_t)gBinFor.addr) << 2;

    break;

    case 4://线性段地址

    addr_hign = ((uint32_t)gBinFor.addr) << 16;

    break;

    default:

    fclose(src_file);

    fclose(dest_file);

    return RES_TYPE_ERROR;

    }

    }

    fclose(src_file);

    fclose(dest_file);

    return RES_HEX_FILE_NO_END;

    }

    展开全文
  • 什么是bin文件什么是垃圾箱,Bin文件是二进制文件,它的使用取决于系统或应用程序。后缀[]的文件。bin]仅表示它是二进制格式。比如,【。bin]经常被用作虚拟光盘文件的后缀,但这并不意味着所有[。文件是虚拟光盘...

    什么是bin文件什么是垃圾箱,Bin文件是二进制文件,它的使用取决于系统或应用程序。后缀为[]的文件。bin]仅表示它是二进制格式。比如,【。bin]经常被用作虚拟光盘文件的后缀,但这并不意味着所有[。文件是虚拟光盘文件。

    7ba9c2086e6c7b1e77c8b24e26486c52.png

    Bin二进制文件,其使用取决于系统或应用程序。

    二进制的缩写,一种文件格式。

    后缀为“”的文件。“bin”仅表示它是二进制格式。比如经常使用的虚拟光驱文件。bin作为后缀,但这并不意味着所有。绑定文件是虚拟光盘文件。

    Linux下安装BIN文件的方法;

    1.首次授予许可:chmod 777 *。容器

    2.开始安装:/*.bin(注意我在前面加了两个字符)

    好了,剩下的就跟Windows一样

    此外,大多数软件或服务器软件在软件的安装后文件夹中都有一个bin文件夹

    因为bin(二进制)在中文中的意思是:二进制

    它通常包含可执行的二进制文件,所以我们在使用较大的软件时通常会找到这个名字的文件夹。以上是bin文件的详细内容。请多关注其他关于Lei.com PHP知识的相关文章!

    展开全文
  • python bin文件处理

    千次阅读 2021-04-26 18:50:40
    1. 基础知识掌握bin文件: open函数创建file对象打开文件的不同模式:例子:open(“file.txt”,‘r’)模式 描述r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。rb 以二进制格式打开一个文件...
  • bin文件转化csv文件

    2021-03-30 21:45:48
    打开命令行窗口,先进入bin2csv.py文件下的路径后,输入以下命令:即把0-5.bin文件转化0-5.csv文件 D:\桌面文件>python bin2csv.py 8 8 D:\桌面文件\20210330力实验\肌电数据\0-5.bin > 0-5.csv
  • 问题:将/bin/sh 重新指向/bin/bash 方法: sudo su cd /bin rm sh ln -s bash sh ls -la sh 运行截图: 问题:将/bin/sh 重新指向bin/dash 方法: cd /bin sudo rm bash ln -s dash bash ls -la bash 运行截图:
  • hex文件转bin格式

    千次阅读 2021-07-16 22:57:03
    hex文件转bin格式
  • Android 读取bin文件方法

    千次阅读 2021-10-24 16:11:56
    bin文件如图,我们要读第一个字节的内容 0xF0 分析: 1. Java代码:返回值是 -16,看到这里发现没道理啊,什么呢? static String readBinFile(String name, int len) { String pa..
  • Qt 生成bin文件

    2021-04-28 11:03:49
    QFile file("flash_data.bin"); //定义一个文件 file.open(QIODevice::WriteOnly); //打开文件 QDataStream ds(&file); //定义一个数据流 for (int idx = 0; idx < 8192; ++i){ ds << (uint8_t)data[i...
  • 将文件数据保存以下格式 打开软件 链接:https://pan.baidu.com/s/17Ulfm9f5m89Nz51y_cp5gA 提取码:01c4 –来自百度网盘超级会员V4的分享 转换完桌面会出现个Bin文件,可以用winhex软件查看 ...
  • 本教程,实现将shell脚本和需要安装的软件包制作成二进制bin文件1、编写shell脚本这里有个安装jenkins的shell脚本,脚本内容如下:#!/bin/bashsed -n -e '1,/^exit 0$/!p' $0 > jenkins.tar.gz 2>/dev/...
  • 一、J-Link Commander读取并存储bin文件 1、打开J-Link Commander 可以在jlink的安装目录下,一般在C:\Program Files (x86)\SEGGER\JLink目录下,此时在这里直接双击JLink.exe,因为J-Link Commander实质上是JLink....
  • 打开后可发现,整个文件以行为单位,每行以冒号开头,内容全部16进制码(以ASCII码形式显示)。Hex文件可以按照如下的方式进行拆分来分析其中的内容: 例如: :020000040000FA , 我把它看做 0x02 0x00 0x00 0x04...
  • 1.读取文本文件 #include <iostream> #include <fstream> int main() ...2.读取bin文件 #include <iostream> #include <fstream> int main() { char buf[64]; ifstream ifs(
  • 【matlab】matlab读写bin文件注意事项

    千次阅读 2021-03-09 11:30:17
    matlab读写bin文件注意事项1、此类代码实现bin文件读写,只需要更改文件路径代码目录的路径即可实现运行2、注意存储数据时,需要将数据读写类型一致,若写入数据,需要判断数据类型可以使用class(变量)实现查看...
  • linux下文件转化 linux下各个文件转化的方法 看你平台的工具链xxx然后用他xx的objcopy进行转化 1.elf转化为hex objcopy -O ihex qq.elf qq.hex 2.hex文件转化为bin objcopy -I ihex -O binary qq.hex qq.bin
  • // 打开文件hex to bin缓存指针,用于计算bin的长度 public void HexFileRead(string filepath)//从指定文件目录读取HEX文件并解析,放入缓存数组buffer中 { #region Hex文件解析 string szLine; int startAdr; int...
  • 关注+星标公众号,不错过精彩内容作者 | strongerHuang微信公众号|嵌入式专栏前面我们讲述了bin、hex、axf和elf文件格式,其中 axf 也算是一种可执行程序文件...
  • bin是binary(二进制)的缩写,bin文件即二进制文件, matlab存储dat和bin文件一样,都需要用到fopen函数、fwrite函数、fclose函数,示例如下所示。 单个文件读写 存储文件 fid = fopen(‘1.dat’,‘w’); a = [1, 2...
  • 用google-research官方的bert源码(tensorflow版本)对新的法律语料进行微调,迭代次数100000次...加上之前微调使用过的config.json以及vocab.txt文件,运行如下文件后生成pytorch.bin,之后就可以被pytorch得代码调
  • c++中如何实现二进制(Bin)与十六进制(Hex)之间的相互转换 1. 二进制 -> 十六进制 #include "stdafx.h" #include "iostream" #include "string" using namespace std; //二进制 -》十六进制 string ...
  • 1. 文件变为tcmime.*.bin         在Java邮件发送中,默认情况下,附件名称过长会自动截断且变为tcmime.*.bin,无法打开查看。 2. 乱码      &...
  • 一般,我们在切换系统默认的Shell的时候,都会使用 chsh -s /bin/zsh 命令来进行修改。今天我遇到一个问题,在某台老服务器上,使用这个命令无法修改,具体原因未知。始终提示——chsh: Shell not changed. 无奈,...
  • 1.保存bin文件 int size = 1000; BYTE* data = new BYTE[size]; memset(data,0,size); CString Path = _T("..\test.bin"); FILE* file1; if (_wfopen_s(&file1, Path.GetBuffer() , _T("wb+")) == 0...
  • bin如何改成mp4

    千次阅读 2021-06-09 07:11:31
    CSS布局HTML小编今天和大家分享把BIN视频文件怎样...用虚拟光驱软件打开BIN文件,然后把里面视频文件复制出来再转换成想要的格式bin怎么转换成视频文件?这个你怎么解决的用虚拟光驱软件打开BIN文件,就能看到里面的视...
  • mysql默认字段值区分大小写: character-set-server=utf8 collation-server=utf8_bin init-connect='SET NAMES utf8;' SELECT DEFAULT_CHARACTER_SET_NAME 'charset', DEFAULT_COLLATION_NAME 'collation' FROM ...
  • Tomcat bin目录 是存放启动和关闭tomcat脚本。其中.bat和.sh文件很多都是成对出现的,作用是一样的,一个是Windows的,一个是Linux。① startup文件:主要是检查catalina.bat/sh 执行所需环境,并调用catalina.bat ...
  • 这里写目录标题概述实现步骤1.调整界面并布局。2.显示文件路径和偏移量3.bin文件读取4....3.合成bin文件涉及的内容略多:将选好的3个bin文件根据偏移量合成1个bin文件,空出的内容填充FF。在本篇文章,我
  • bin文件它可以是任何内容,并不是您多见到的doc、jpg、mp3等具有特定程序可以打开的文件...2016-11-18 17:25:05使用番茄花园XP系统电脑过程中,遇到了一个后缀.bin的文件,不懂得是什么文件,更不知道bin文件如何...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,989,661
精华内容 795,864
关键字:

为bin