-
matlab开发-二进制文件阅读器
2019-08-25 07:42:51matlab开发-二进制文件阅读器。这个二进制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开发-阅读二进制格式
2019-08-22 11:27:27matlab开发-阅读二进制格式。读取RIGOL示波器存储的二进制波形(.wfm)文件 -
C++ 文件读写实战——2进制文件查看器(16进制显示)
2018-11-02 22:22:42简单的二进制阅读器(或者说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图像为例
-
-
实现十进制二进制八进制十六进制的相互转换 (Java经典编程案例)
2019-07-02 13:53:44计算机内部使用了二进制数据,为了节约空间,又定义了八进制和十六进制来表示二进制数据。对于普通人来说,十进制更加容易阅读,本例子将实现一个进制转换器。 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(); } }
执行结果如下图所示:
-
第十六周项目2:阅读并运行程序,分别用记事本和二进制文件阅读器阅读(2)
2016-06-15 19:43:40问题及代码: 运行结果: 知识点总结: 学习心得:问题及代码:
/*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是以输出方式打开,然后有一个错误检查。
学习心得:
虽然还不太懂,但是我觉得慢慢会懂的 -
第十六周项目2:阅读并运行程序,分别用记事本和二进制文件阅读器阅读(1)
2016-06-13 19:52:28问题及代码: 运行结果: 知识点总结: 学习心得: -
C#开发技术 计算器(二进制、八进制、十进制)
2020-07-03 15:10:18二进制、八进制、十进制计算器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown... -
拆解二进制炸弹
2019-11-22 16:48:55拆解二进制炸弹 一、实验目的 1.理解C语言程序的机器级表示。 2.初步掌握GDB调试器的用法。 3.阅读C编译器生成的x86-64机器代码,理解不同控制结构生成的基本指令模式,过程的实现。 二、 实验环境 SecureCRT(10.... -
第十五周阅读程序1:二进制读写
2015-06-22 16:30:31阅读并运行下面的两个程序,分别用记事本和二进制文件阅读器(请自行下载Binary Viewer等程序,或者用DOS中的Debug程序,并百度其用法)。查看其内容,并理解文件存储的原理。 (1) #include #include #include ... -
《C++语言基础》程序阅读——二进制文件及文件的随机读写
2015-06-09 16:54:02返回:贺老师课程教学链接1、阅读并运行下面的两个程序,分别用记事本和二进制文件阅读器(请自行下载Binary Viewer等程序,或者用DOS中的Debug程序,并百度其用法)。查看其内容,并理解文件存储的原理。(1)#... -
时间优先级分组的二进制防冲突协议
2020-10-23 04:15:52分析了当前二进制搜索防冲突协议的特点,针对移动应用中有严格识别时限要求的场景,提出了基于时间分组的二进制搜索协议,该协议在标签里设置时间优先级,记录标签进入阅读器读写范围的时间长短,并以此时间优先级将... -
yabai:基于二进制空间分区的macOS切片窗口管理器-源码
2021-02-28 01:27:16使用二进制空间分区算法自动修改窗口布局,使您可以专注于窗口的内容而不会分心。 yabai的其他功能包括焦点跟随鼠标,禁用动画切换空间,创建超过16个空间限制的空间等等。 安装与配置 这 提供了多种安装方法的简要... -
第14周-阅读项目1-二进制文件的读写
2015-06-15 15:22:10阅读并运行下面的两个程序,分别用记事本和二进制文件阅读器(请自行下载Binary Viewer等程序,或者用DOS中的Debug程序,并百度其用法)。查看其内容,并理解文件存储的原理。 问题及代码: #include #... -
第15周 程序阅读-二进制文件及文件的读取1
2015-06-17 08:20:161、阅读并运行下面的两个程序,分别用记事本和二进制文件阅读器(请自行下载Binary Viewer等程序,或者用DOS中的Debug程序,并百度其用法)。查看其内容,并理解文件存储的原理。 (1) #include #include #... -
1.2尝试静态分析(《有趣的二进制》)
2019-04-22 17:26:51不记录仿佛没有学过。。还是记录一下,虽然花时间,但是重新看起来也容易。 //预备 静态分析:不运行目标程序,...二进制编辑器,计算器,反汇编器,调试器 推荐的两种二进制编辑器: Stirling(日语) BZ Editor(... -
python读二进制文件字节长度_在Python中读取二进制文件:读取某些字节需要很长时间...
2021-01-30 03:19:37这很奇怪我正在使用Python中的numpy库阅读一些(不可否认的是非常大的:每个~2GB)二进制文件。我用的是:thingy = np.fromfile(fileObject, np.int16, 1)方法。这就在一个嵌套循环的中间-我对每个'channel'执行这个... -
3、文件文件和二进制文件的区别
2020-07-15 23:05:41在学习了 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:172、阅读范围内所有标签,所有响应的标签发送自身ID 3、检查是否发生碰撞,有碰撞的话,读写器将碰撞的最高位置0,其余低位置1 4、重新制定筛选条件像标签发送请求 5、将响应读写器请求标签重新发送自身ID 6... -
15周《C++语言基础》程序阅读——二进制文件及文件的随机读写(1)
2015-06-15 21:35:211、阅读并运行下面的两个程序,分别用记事本和二进制文件阅读器(请自行下载Binary Viewer等程序,或者用DOS中的Debug程序,并百度其用法)。查看其内容,并理解文件存储的原理。 (1) #include #include #... -
JAVA语言基础之I/O(这里先讲二进制I/O)
2020-07-21 16:28:41二进制文件是由位的序列构成的,它存储的数据以二进制的形式表示,使用JVM阅读,二进制文件的优点就是比文本文件的效率更高。二进制文件与主机编码方案无关因此可移植。JAVA程序在任何机器上都可以访问Java程序创建... -
【RFID防碰撞协议/算法】动态二进制搜索算法
2013-12-19 14:40:00因此动态的二进制搜索算法在每次传输中,阅读器传输一部分,标签传输一部分(阅读传送部分+标签传送部分=序列号总长度),总的传输量是传统方法的一半,因此减少了因传输数据而引起的识读时间浪费。 动态的二进制... -
python处理wsdl二进制数组
2020-05-16 10:57:46如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新... -
第15周-二进制文件与字符串流-项目0-课后实践·阅读程序(1)
2015-06-13 11:17:54/* ...* All rights reserved. * 文件名称:test.cpp * 作 者:刘畅 ...* 问题描述:阅读并运行下面两个程序,分别用记事本和二进制文件阅读器。查看其内容,并理解文件存储的原理 * 输入描述:输入一个数; -
12.5 以文本格式和二进制格式打开文件,到底有什么区别?
2021-02-07 22:40:27我们知道,open() 函数第二个参数是一个字符串,用于指定文件...而二进制文件通常用来保存视频、图片、音频等不可阅读的内容,当用文本编辑器打开这些文件,会看到一堆乱码,根本看不懂。 实际上,从数据存储的角度上分 -
excel二进制移位运算_速戳!带你探索基于移位相加的乘法器…
2021-01-05 13:07:01关注并标星大同学吧每周1次,打卡阅读快速获取行业最新资讯经验犹如一盏明灯的光芒它使早已存在于头脑中朦胧的东西豁然开朗全文共1418字,预计阅读4分钟笔经面经(第26期)根据乘法运算的原理可知:乘法运算最终可分解... -
【RFID防碰撞协议/算法】二进制搜索防碰撞算法
2013-12-19 14:13:00二进制搜索防碰撞算法中用的主要命令有: 1、Request(请求):阅读器向其识别区中的标签发送带有标签序列号的请求命令,标签接到命令后,其自身序列号小于或者等于该序列号的标签会将自己的序列号发送给阅读器,...
收藏数
501
精华内容
200
-
MySQL 主从复制 Replication 详解(Linux 和 W
-
2014年重庆理工大学《物联网技术导论》期末考试试卷.pdf
-
CentOS 7 yum 安装 PHP7.3 教程
-
6-Verilog HDL寄存器与计数器设计.7z
-
LVS + Keepalived 实现 MySQL 负载均衡与高可用
-
基于SSM实现的房屋租赁系统【附源码】(毕设)
-
JavaSE基础篇(二)——数据类型转换和变量
-
2014年重庆理工大学《计算机网络》期末考试试卷.pdf
-
MySQL 四类管理日志(详解及高阶配置)
-
美迪凯首次公开发行股票并在科创板上市招股说明书.pdf
-
2014年重庆理工大学《RFID原理与应用开发》期末考试试卷 .pdf
-
基于微信的同城小程序、校园二手交易小程序 毕业设计毕设源码使用教程
-
嵘泰股份首次公开发行股票招股说明书.pdf
-
python Flask+scrapy+人工智能 实现高性能搜索引擎
-
uppaal-4.1.24.zip
-
萌新的莫名其妙的错误.txt
-
变量的储存类型
-
命题人讲座_代数不等式.pdf
-
2014年重庆理工大学《软件质量保证与测试》两套期末考试试卷.pdf
-
vue3从0到1-超详细