精华内容
下载资源
问答
  • matlab开发-二进制文件阅读器。这个二进制STL文件阅读器比现有的阅读器快得多。
  • 二进制文件阅读器

    千次阅读 2015-06-17 08:53:40
    代码: #include #include #include #include using namespace std; int main( ) { char c[16]; char f[100]; cout请输入文件名:"; cin>>f; ifstream infile(f,ios::in|ios::binary);

    代码:

    #include<iostream>
    #include<iomanip>
    #include <fstream>
    #include<cstdlib>
    using namespace std;
    
    int main( )
    {
        char c[16];
        char f[100];
        cout<<"请输入文件名:";
        cin>>f;
        ifstream infile(f,ios::in|ios::binary);
        if(!infile)
        {
            cerr<<"open error!";
            exit(1);
        }
        while(!infile.eof())
        {
            infile.read(c,16);
            if(!infile.eof())
            {
                for(int i=0; i<16; ++i)
                    cout<<setfill('0')<<setw(2)<<hex<<int((unsigned char)(c[i]))<<" ";
                cout<<'\t';
                for(int i=0; i<16; ++i)
                    cout<<(c[i]?c[i]:'.');
                cout<<endl;
            }
        }
    
        return 0;
    }


    运行结果:

    展开全文
  • matlab开发-阅读二进制格式。读取RIGOL示波存储的二进制波形(.wfm)文件
  • 简单的二进制阅读器(或者说16进制查看器) 在学习BMP位图的构成时,对网上的收费16进制查看器很是烦躁,notepad查看时卡到放弃人生 因为只是为了初步学习图片知识,以及查看2进制文件内部构成的话,可以自己实现一个...

    简单的二进制阅读器(或者说16进制查看器)

    在学习BMP位图的构成时,对网上的收费16进制查看器很是烦躁,notepad查看时卡到放弃人生

    因为只是为了初步学习图片知识,以及查看2进制文件内部构成的话,可以自己实现一个

    思路

    • 使用C++的文件操作进行二进制的读操作,这里默认以1个字节为单位(2位16进制)

    • 每次读一个字节,就将其转化位16进制,读取的时候需要注意有符号数和无符号数的区别,我这里用unsigned Char 来存取每一个字节的内容

    • 对于C++的文件读写网上很多介绍

    • 对于每一个读取的数写入文本文件内(.txt文件)便于查看

    • 计算文件大小 通过C++的文件指针移动即首尾文件指针差除以1024即文件大小(KB)

    代码如下

    #include<iostream>
    #include<fstream>
    #include<string>
    #include<cstdlib>
    
    using namespace std;
    
    char HEX[16] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' };
    
    void transfrom(int num, char* hexNumber)
    {
    	for (int i = 0; i < 8; i++)
    	{
    		hexNumber[i] = '0';
    	}
    	int index = 7;
    	while (num != 0 && index >= 0)
    	{
    		hexNumber[index--] = HEX[num % 16];
    		num = num / 16;
    	}
    }
    
    string getFileName(string& filename)
    {
    	int index = -1;
    	for (int i = filename.length() - 1; i >= 0; i--)
    	{
    		if (filename[i] == '\\')
    		{
    			index = i;
    			break;
    		}
    	}
    	return filename.substr(index + 1, filename.length());
    }
    
    int main()
    {
    	int num = 0;    //The Byte have been read
    	string path_r;
    	string path_w;
    	cout << "Please input the File for read and write's name: " << endl;
    
    	ifstream in;
    	ofstream out;
    
    	while (true)
    	{
    		cout << "The file path to read: ";
    		getline(cin, path_r);
    		in = ifstream(path_r, ios::binary);
    		if (!in.is_open())
    		{
    			cout << "Error: File Path is Wrong" << endl;
    		}
    		else break;
    	}
    	// Get the file path to Write
    	cout << "The File Path to save(.txt): ";
    	getline(cin, path_w);
    	out = ofstream(path_w);
    
    	//Get the File size
    	long long Beg = in.tellg();
    	in.seekg(0, ios::end);
    	long long End = in.tellg();
    	long long fileSize = End - Beg;
    	in.seekg(0, ios::beg);
    	out << "\t\t" << getFileName(path_r) << "\tFile Size: " << fileSize / 1024.0 << 	"KB" << endl << endl;
    
    	//The index of every row
    	char hexNumber[9] = "00000000";
    
    	//Print the first row's index
    	unsigned char temp;
    	out << "\t\t"; //Format index
    	for (int i = 0; i < 16; i++) out << HEX[i] << "  ";
    	out << endl;
    
    
    
    	//Read and Write File
    	while (in.read((char*)&temp, 1))
    	{
    		if (num % 16 == 0)
    		{
    			out << endl;
    			transfrom(num, hexNumber);
    			out << hexNumber << ":\t";
    		}
    		num++;
    		int hex = (unsigned)temp;
    		char a = HEX[hex / 16];
    		char b = HEX[hex % 16];
    		out << a << b << " ";
    	}
    
    	out.seekp(0,ios::beg);
    	
    	// Close file
    	in.close();
    	out.close();
    
    	cout << "Read Successfully" << endl;
    	system("pause");
    	return 0;
    }
    

    运行说明

    • 不能输入输出文件名一致(可以自己试试ㄟ( ▔, ▔ )ㄏ)
    • 首先输入需要读的文件(可以直接将文件拖入黑框 系统会自动输入绝对路径)
    • 然后输入用于保存结果的 TXT 文件(如果不存在则在当前目录新建)

    运行截图

    以读取Bmp图像为例

    展开全文
  • 计算机内部使用了二进制数据,为了节约空间,又定义了八进制和十六进制来表示二进制数据。对于普通人来说,十进制更加容易阅读,本例子将实现一个进制转换。 package mytest; import java.awt.BorderLayout; ...

    计算机内部使用了二进制数据,为了节约空间,又定义了八进制和十六进制来表示二进制数据。对于普通人来说,十进制更加容易阅读,本例子将实现一个进制转换器。

    package mytest;
    
    import java.awt.BorderLayout;
    import java.awt.EventQueue;
    
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.border.EmptyBorder;
    import javax.swing.UIManager;
    import java.awt.GridLayout;
    
    import javax.swing.ButtonGroup;
    import javax.swing.JLabel;
    import javax.swing.JTextField;
    import javax.swing.JRadioButton;
    import javax.swing.border.EtchedBorder;
    import java.awt.Font;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    import java.awt.event.FocusAdapter;
    import java.awt.event.FocusEvent;
    
    public class Example extends JFrame {
        
        private JPanel contentPane;
        private JTextField textField;
        private String number;
        
        public static void main(String[] args) {
          
            EventQueue.invokeLater(new Runnable() {
                public void run() {
                    try {
                        Example frame = new Example();
                        frame.setVisible(true);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
        }
        
        public Example() {
            setTitle("\u8FDB\u5236\u8F6C\u6362\u5DE5\u5177");//进制转换工具
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setBounds(100, 100, 450, 150);
            contentPane = new JPanel();
            contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
            contentPane.setLayout(new BorderLayout(0, 0));
            setContentPane(contentPane);
    
            JPanel panel = new JPanel();
            contentPane.add(panel, BorderLayout.CENTER);
            panel.setLayout(new GridLayout(2, 1, 5, 5));
    
            JPanel panel1 = new JPanel();
            panel1.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
            panel.add(panel1);
            panel1.setLayout(new GridLayout(1, 2, 5, 5));
    
            JLabel label = new JLabel("\u8BF7\u8F93\u5165\u8981\u8F6C\u6362\u7684\u6570\u636E\uFF1A");
            label.setFont(new Font("微软雅黑", Font.PLAIN, 16));
            panel1.add(label);
    
            textField = new JTextField();
            textField.addFocusListener(new FocusAdapter() {
                @Override
                public void focusLost(FocusEvent e) {
                    do_textField_focusLost(e);
                }
            });
            textField.setFont(new Font("微软雅黑", Font.PLAIN, 16));
            panel1.add(textField);
            textField.setColumns(10);
    
            JPanel panel2 = new JPanel();
            panel2.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
            panel.add(panel2);
    
            JRadioButton binaryRadioButton = new JRadioButton("\u4E8C\u8FDB\u5236");
            binaryRadioButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    do_binaryRadioButton_actionPerformed(e);
                }
            });
            binaryRadioButton.setFont(new Font("微软雅黑", Font.PLAIN, 16));
            panel2.add(binaryRadioButton);
    
            JRadioButton octalRadioButton = new JRadioButton("\u516B\u8FDB\u5236");
            octalRadioButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    do_octalRadioButton_actionPerformed(e);
                }
            });
            octalRadioButton.setFont(new Font("微软雅黑", Font.PLAIN, 16));
            panel2.add(octalRadioButton);
    
            JRadioButton decimalRadioButton = new JRadioButton("\u5341\u8FDB\u5236");
            decimalRadioButton.setSelected(true);
            decimalRadioButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    do_decimalRadioButton_actionPerformed(e);
                }
            });
            decimalRadioButton.setFont(new Font("微软雅黑", Font.PLAIN, 16));
            panel2.add(decimalRadioButton);
    
            JRadioButton hexRadioButton = new JRadioButton("\u5341\u516D\u8FDB\u5236");
            hexRadioButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    do_hexRadioButton_actionPerformed(e);
                }
            });
            hexRadioButton.setFont(new Font("微软雅黑", Font.PLAIN, 16));
            panel2.add(hexRadioButton);
    
            ButtonGroup group = new ButtonGroup();
            group.add(binaryRadioButton);
            group.add(octalRadioButton);
            group.add(decimalRadioButton);
            group.add(hexRadioButton);
        }
    
        protected void do_binaryRadioButton_actionPerformed(ActionEvent e) {
            textField.setText(Integer.toBinaryString(Integer.parseInt(number)));
        }
    
        protected void do_octalRadioButton_actionPerformed(ActionEvent e) {
            textField.setText(Integer.toOctalString(Integer.parseInt(number)));
        }
    
        protected void do_decimalRadioButton_actionPerformed(ActionEvent e) {
            textField.setText(number);
        }
    
        protected void do_hexRadioButton_actionPerformed(ActionEvent e) {
            textField.setText(Integer.toHexString(Integer.parseInt(number)));
        }
    
        protected void do_textField_focusLost(FocusEvent e) {
            number = textField.getText();
        }
    }
    

    执行结果如下图所示:
    在这里插入图片描述

    展开全文
  • 问题及代码: 运行结果: 知识点总结: 学习心得:
    

    问题及代码:

    /*Copyright (c)2016,烟台大学计算机与控制工程学院
    *All rights reserved.
    *文件名称:main.cpp
    *作    者:崔青青
    *完成日期:2016年6月13日
    *版 本 号:v1.0
    *问题描述:
    *输入描述:无
    *输出描述:无
    */
    
    #include <iostream>
    #include<fstream>
    #include<cstring>
    #include<cstdlib>
    using namespace std;
    
    int main()
    {
        int a;
        ofstream outfile("f2.dat",ios::out|ios::binary);
        if(!outfile)
        {
            cerr<<"open error!"<<endl;
            exit(1);
        }
        cin>>a;
        outfile.write((char*)&a,sizeof(int));
        outfile.close();
        return 0;
    }
    


    运行结果:


    知识点总结:

    ofstream是从内存到硬盘,ifstream是从硬盘到内存,iOS::out是以输出方式打开,然后有一个错误检查。

    学习心得:
    虽然还不太懂,但是我觉得慢慢会懂的

    展开全文
  • 问题及代码: 运行结果: 知识点总结: 学习心得:
  • 二进制、八进制、十进制计算器 你好! 这是你第一次使用 Markdown编辑 所展示的欢迎页。如果你想学习如何使用Markdown编辑, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown...
  • 拆解二进制炸弹

    千次阅读 2019-11-22 16:48:55
    拆解二进制炸弹 一、实验目的 1.理解C语言程序的机器级表示。 2.初步掌握GDB调试的用法。 3.阅读C编译器生成的x86-64机器代码,理解不同控制结构生成的基本指令模式,过程的实现。 二、 实验环境 SecureCRT(10....
  • 阅读并运行下面的两个程序,分别用记事本和二进制文件阅读器(请自行下载Binary Viewer等程序,或者用DOS中的Debug程序,并百度其用法)。查看其内容,并理解文件存储的原理。 (1) #include #include #include ...
  • 返回:贺老师课程教学链接1、阅读并运行下面的两个程序,分别用记事本和二进制文件阅读器(请自行下载Binary Viewer等程序,或者用DOS中的Debug程序,并百度其用法)。查看其内容,并理解文件存储的原理。(1)#...
  • 分析了当前二进制搜索防冲突协议的特点,针对移动应用中有严格识别时限要求的场景,提出了基于时间分组的二进制搜索协议,该协议在标签里设置时间优先级,记录标签进入阅读器读写范围的时间长短,并以此时间优先级将...
  • 使用二进制空间分区算法自动修改窗口布局,使您可以专注于窗口的内容而不会分心。 yabai的其他功能包括焦点跟随鼠标,禁用动画切换空间,创建超过16个空间限制的空间等等。 安装与配置 这 提供了多种安装方法的简要...
  • 阅读并运行下面的两个程序,分别用记事本和二进制文件阅读器(请自行下载Binary Viewer等程序,或者用DOS中的Debug程序,并百度其用法)。查看其内容,并理解文件存储的原理。 问题及代码: #include #...
  • 1、阅读并运行下面的两个程序,分别用记事本和二进制文件阅读器(请自行下载Binary Viewer等程序,或者用DOS中的Debug程序,并百度其用法)。查看其内容,并理解文件存储的原理。 (1) #include #include #...
  • 不记录仿佛没有学过。。还是记录一下,虽然花时间,但是重新看起来也容易。 //预备 静态分析:不运行目标程序,...二进制编辑,计算器,反汇编,调试 推荐的两种二进制编辑: Stirling(日语) BZ Editor(...
  • 这很奇怪我正在使用Python中的numpy库阅读一些(不可否认的是非常大的:每个~2GB)二进制文件。我用的是:thingy = np.fromfile(fileObject, np.int16, 1)方法。这就在一个嵌套循环的中间-我对每个'channel'执行这个...
  • 在学习了 fopen()函数后,我们知道它的第二个参数是一个字符串,用来表示文件打开方式。...二进制文件通常用来保存视频、图片、程序等不可阅读的内容,用文本编辑打开这些文件,会看到一堆乱码,根本看不懂。 但是从.
  • CS:APP 二进制炸弹拆解详解

    千次阅读 2019-10-14 17:01:03
    ​ X86X86X86汇编基础—二进制炸弹 二、实验目的 ​ 1.1.1.初步认识X86X86X86汇编语言; ​ 2.2.2.掌握阅读程序反汇编代码的方法,了解程序在机器上运行的实质; ​ 3.3.3.熟悉LinuxLinuxLinux环境,掌握调试...
  • 二进制树形算法

    2019-10-05 01:36:17
    2、阅读范围内所有标签,所有响应的标签发送自身ID 3、检查是否发生碰撞,有碰撞的话,读写将碰撞的最高位置0,其余低位置1 4、重新制定筛选条件像标签发送请求 5、将响应读写请求标签重新发送自身ID 6...
  • 1、阅读并运行下面的两个程序,分别用记事本和二进制文件阅读器(请自行下载Binary Viewer等程序,或者用DOS中的Debug程序,并百度其用法)。查看其内容,并理解文件存储的原理。 (1) #include #include #...
  • 二进制文件是由位的序列构成的,它存储的数据以二进制的形式表示,使用JVM阅读二进制文件的优点就是比文本文件的效率更高。二进制文件与主机编码方案无关因此可移植。JAVA程序在任何机器上都可以访问Java程序创建...
  • 因此动态的二进制搜索算法在每次传输中,阅读器传输一部分,标签传输一部分(阅读传送部分+标签传送部分=序列号总长度),总的传输量是传统方法的一半,因此减少了因传输数据而引起的识读时间浪费。 动态的二进制...
  • 如果你想学习如何使用Markdown编辑, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑进行了一些功能拓展与语法支持,除了标准的Markdown编辑功能,我们增加了如下几点新...
  • /* ...* All rights reserved. * 文件名称:test.cpp * 作 者:刘畅 ...* 问题描述:阅读并运行下面两个程序,分别用记事本和二进制文件阅读器。查看其内容,并理解文件存储的原理 * 输入描述:输入一个数;
  • 我们知道,open() 函数第二个参数是一个字符串,用于指定文件...而二进制文件通常用来保存视频、图片、音频等不可阅读的内容,当用文本编辑打开这些文件,会看到一堆乱码,根本看不懂。 实际上,从数据存储的角度上分
  • 关注并标星大同学吧每周1次,打卡阅读快速获取行业最新资讯经验犹如一盏明灯的光芒它使早已存在于头脑中朦胧的东西豁然开朗全文共1418字,预计阅读4分钟笔经面经(第26期)根据乘法运算的原理可知:乘法运算最终可分解...
  • 二进制搜索防碰撞算法中用的主要命令有: 1、Request(请求):阅读器向其识别区中的标签发送带有标签序列号的请求命令,标签接到命令后,其自身序列号小于或者等于该序列号的标签会将自己的序列号发送给阅读器,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 501
精华内容 200
关键字:

二进制阅读器