精华内容
下载资源
问答
  • 二进制的10怎么读
    千次阅读
    2017-09-06 10:30:26

    可以参照知乎链接:https://www.zhihu.com/question/52359180


    我的实现:

    #include<iostream>
    #include <vector>
    using namespace std; 
    int main()  
    {  
        MatrixXd Final;
        std::vector<unsigned char> buffer;
    
        long size;
        ifstream in;
    
        in.open(filename, ios::in|ios::binary|ios::ate); 
        if(!in){  
            cout<<"open error!"<<endl;  
            return -1;  
        }  
    
        size = in.tellg();  
        size = size -4;//我需要跳过4个字节,个人需要。
    
        buffer.resize(size);
        in.seekg (4, ios::beg);  //jump to begin pos + 偏移量
        in.read (reinterpret_cast<char*>(&buffer[0]),buffer.size()); //注意,我采用的是&buffer[0],知乎上有人采用buffer.data(),这是c++ 11才有的特性
        in.close();
    
        for(int i=0;i<10;i++)
        {
            cout<< (unsigned short)buffer[i]<<endl;
        }
    
        system("pause");  
        return 0;  
    }  
    

    总结:
    in.read (reinterpret_cast<char*>(&buffer[0]),buffer.size())
    我采用的是&buffer[0],知乎上有人采用buffer.data(),这是c++ 11才有的特性,参见http://www.cplusplus.com/reference/vector/vector/

    更多相关内容
  • 双11“光棍节”即将来临,为了祝福大家脱单能取得成功,小魔在此分享一个用来撩妹撩汉的心魔术。小魔曾经在高中和大学的班级联谊中都表演了这个魔术,效果甚佳,甚至可以大胆的牵对方的手!!!大胆牵手首先介绍...

    近些年来,小魔发现,对于年轻的男女而言,一些传统的节日似乎都变成了情人节或者脱单节,就连“光棍节”,实际上很多人都是抱着节前或者是当天脱单而过的。双11“光棍节”即将来临,为了祝福大家脱单能取得成功,小魔在此分享一个用来撩妹撩汉的读心魔术。

    小魔曾经在高中和大学的班级联谊中都表演了这个魔术,效果甚佳,甚至可以大胆的牵对方的手!!!


    大胆牵手

    首先介绍大致表演流程:

    (1)告知观众可以猜出观众心中所想,但观众大部分会不认同。

    (2)为了证明拥有读心的能力,拿出一张写有很多数字卡牌(这里小魔称它为“主牌”,约30个数字),让观众选择其中一个数并且要求观众牢牢记住

    (3)检测观众是否记住了那个数,依次给观众看剩余的5张也写着很多数字的卡牌,让观众如实回答是否能在卡牌中找到那个数字

    (4)完毕后,握住观众的手进行感应,沉思数秒后,说出了观众心中所想,观众表示“我伙呆”!!!

    也许看到这里,读者会有点懵逼:怎么做到的?!但仔细再回想下小魔的这篇文章的题目里的关键字——二进制!在解析这个魔术之前,我们首先要感谢一下18世纪德国数理哲学大师莱布尼兹,因为他发现了二进制,于是才有了这个魔术的原理基础——10进制与二进制的相互转化。


    伟大的莱布尼茨

    NO.1 表演前的准备

    这个魔术理论基础非常简单,就是利用下面的十进制与二进制的转化表(不需要记忆)即可制作整个魔术所需道具——那5张卡牌以及那张写有31个数字的主牌。

    主牌的制作: 将 1~31这31个数字乱序写入主卡牌中,小魔非常建议不要以从小到大或者从大到小的顺序写在主卡牌上。因为乱序可以减弱观众的对最大数字和最小数字的敏感程度,这是细节。


    十进制与二进制的转换

    卡牌1~5的制作:在上表卡牌1~5中,凡是该卡牌所在列有“1”的所对应行的十进制数,都应该乱序地写在该卡牌上,因此(不需要记忆,只用来制作卡牌的):

    写入卡牌1的是16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31

    写入卡牌2的是8,9,10,11,12,13,14,15,24,25,26,27,28,29,30,31

    写入卡牌3的是4,5,6,7,12,13,14,15,20,21,22,23,28,29,30,31

    写入卡牌4的是2,3,6,7,10,11,14,15,18,19,22,23,26,27,30,31

    写入卡牌5的是1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31

    各卡牌所代表的权值(需要记忆):

    卡牌1:2^4 = 16

    卡牌2:2^3 = 8

    卡牌3:2^2 = 4

    卡牌4:2^1 = 2

    卡牌5:2^0 = 1

    制作完卡牌时,准备工作就完了。

    No.2 表演时段

    开场白,小魔面向观众说:“大家有听过读心术吧,你(们)相信我有读心的能力不?”

    90%的观众都表示怀疑,而且会问:“那请你告诉我,现在我心里想的是什么吗?”

    此时,小魔会回答:“暂时是没办法得知,主要是我们现在还没建立起感应,我需要放大你的脑电波才能感应出来。”

    观众又会问:“怎么放大呢?”

    这时小魔展示写有乱序的(1~31)数字主牌,让观众选择并且默默记下其中一个。再次确定观众是否记住了那个数字,如果观众记住了那个数字,就依次地将剩下标号1~5的五张卡牌展示给观众看,同时问观众那个数字是否在卡牌中,并解释说这样做是为了加强观众对该数字的记忆脑电波。(这里假设观众选择了23)

    接着,记下观众指出存在那个数字的那些卡牌,将这些卡牌所对应的权值(在No.1步骤中需要记忆的)进行相加,所得和就是观众选择的那个数字!比如之前观众选的数字是23,那么他会在被询问哪些卡牌有这个数字时,指出卡牌1、3、4、5的里面有该数字存在,其中卡牌1、3、4、5的对应权值分别为16、4、2、1,所以根据各卡牌权值计算所得和:

    原数字 = 16+4+2+1 = 23(bingo!)

    最后,牵(握)着妹(汉)子的手,装作在感应ta的想法,神秘的跟ta说:“恩,好啦,我感应完毕了......我猜,你选的是XX吧~”

    惊呼!~

    插播福利:

    1.近期整理了20G资源,包含产品/运营/测试/程序员/市场等,互联网从业者【工作必备干货技巧、行业专业书籍、面试真题宝典等

    获取方式:扫描下方二维码,关注微信公众号【非典型互联网】,回复20,即可获取干货链接;

    2.互联网人交流群:关注微信公众号【非典型互联网】,在后台回复“入群”,人脉共享,一起交流;


    No.3 原理解析

    注:如果觉得No.3这一段比较难理解可以忽略,只需掌握上面的就可以了,接下来所讲解的知识对这个魔术的进一步各项拓展

    这个魔术原理其实就是利用二进制与十进制之间的相互转换原理,如果是程序员可能就更加明白小魔所说的。举几个十进制转二进制栗子对比下(下面式子括号内的是表示几进制):

    23(10) =1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 +1×2^0=  10111(2)

    31(10) =1×2^4 + 1×2^3 + 1×2^2 + 1×2^1 +1×2^0=  11111(2)

    8(10) =0×2^4 + 1×2^3 + 0×2^2 + 0×2^1 +0×2^0=  01000(2)

    二进制中,五位二进制数最大能表示的10进制数字是2^5-1=31,即二进制的11111;六位二进制最大能表示63,即二进制的111111,同时,主卡牌的数字范围为1~63,卡牌1~6的权值分别为32,16,8,4,2,1,还可以根据五位二进制与十进制间的转换表推出六位二进制与十进制的转换表,小魔这里就不写了。(下面式子括号内的是表示几进制)

    32(10) = 1×2^5 + 0×2^4 + 0×2^3 + 0×2^2 + 0×2^1 +0×2^0=  100000(2)

    63(10) = 1×2^5 + 1×2^4 + 1×2^3 + 1×2^2 + 1×2^1 +1×2^0=  111111(2)

    最后列出来自于百度百科的二进制表示(转化)法:


    二进制表示法

    No.4 文末提醒

    尽量别用0,因为0是比较起眼,而且很容易被观众找到规律。

    制作主牌和5个卡牌时,首先要尽可能将数字乱序地写入卡牌中;尽可能私底下记住卡牌的编号,而不是通过在卡牌背面写上数字来区别辨认。

    只要按照小魔的步骤,即使不看No.3的内容和理解其中的原理也可以表演的,就像不用知道为啥钥匙能开锁,只需要这把钥匙能开这把锁就好;在准备之后的整一个表演过程中,仅仅需要记住卡牌对应的标号的权值和简单的心算即可。

    作者:魔术师JeffreyChu

    文末福利:

    1.近期整理了20G资源,包含产品/运营/测试/程序员/市场等,互联网从业者【工作必备干货技巧、行业专业书籍、面试真题宝典等

    获取方式:扫描下方二维码,关注微信公众号【非典型互联网】,回复20,即可获取干货链接;

    2.互联网人交流群:关注微信公众号【非典型互联网】,在后台回复“入群”,人脉共享,一起交流;


    展开全文
  • JavaScript读二进制文件并用ajax传输二进制流的方法2018-12-30编程之家收集整理的这篇文章主要介绍了JavaScript读二进制文件并用ajax传输二进制流的方法,编程之家小编觉得挺不错的,现在分享给大家,也给大家做个...

    JavaScript读二进制文件并用ajax传输二进制流的方法

    2018-12-30

    编程之家收集整理的这篇文章主要介绍了JavaScript读二进制文件并用ajax传输二进制流的方法,编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

    综合网上多个教程,加上自己实践得出的方法,目前能够兼容谷歌、IE11、IE10。

    htmlbody里的内容,没什么特殊的。

    读取二进制文件:

    这里要对浏览器类型做一下判断,如果不是IE则使用FileReader进行读取,如果是IE则使用activex控件读取。这里有一个坑,虽然IE11和IE10不支持FileReader对象的方法,但IE11和IE10的“typeof FileReader”并不是“undefined”,难以直接通过是否支持FileReader来区分浏览器。还要注意的是FileReader方法是异步读文件,activex是同步读文件,我一直没想明白这两条路线怎样封装在一个方法里,不知大家有没有好办法。

    其中BinaryFile对象的构造方法摘自403#xx3718403xx">http://www.codeproject.com/Articles/17825/Reading-and-Writing-Binary-Files-Using-JScript?msg=3718403#xx3718403xx技术博客,在博客的回复中有一个改进方法据说效率更高,但因为没有看懂,所以选用了原始方法。

    原始方法很长:

    15) {d>>=4;h=hD.substr(d&15,1)+h;}

    return h;

    }

    this.h2d = function(h)

    {

    return parseInt(h,16);

    }

    this.WriteAll = function(what)

    {

    //Create Stream object

    //var BinaryStream = WScript.CreateObject("ADODB.Stream");

    var BinaryStream = new ActiveXObject("ADODB.Stream");

    //Specify stream type - we cheat and get string but 'like' binary

    BinaryStream.Type = adTypeText;

    BinaryStream.CharSet = '437';

    //Open the stream

    BinaryStream.Open();

    // Write to the stream

    BinaryStream.WriteText(this.Forward437(what));

    // Write the string to the disk

    BinaryStream.SaveToFile(this.path,adSaveCreateOverWrite);

    // Clearn up

    BinaryStream.Close();

    }

    this.ReadAll = function()

    {

    //Create Stream object - needs ADO 2.5 or heigher

    //var BinaryStream = WScript.CreateObject("ADODB.Stream")

    var BinaryStream = new ActiveXObject("ADODB.Stream");

    //Specify stream type - we cheat and get string but 'like' binary

    BinaryStream.Type = adTypeText;

    BinaryStream.CharSet = codePage;

    //Open the stream

    BinaryStream.Open();

    //Load the file data from disk To stream object

    BinaryStream.LoadFromFile(this.path);

    //Open the stream And get binary 'string' from the object

    var what = BinaryStream.ReadText;

    // Clean up

    BinaryStream.Close();

    return this.Backward437(what);

    }

    /* Convert a octet number to a code page 437 char code */

    this.Forward437 = function(inString)

    {

    var encArray = new Array();

    var tmp='';

    var i=0;

    var c=0;

    var l=inString.length;

    var cc;

    var h;

    for(;i1;)

    {

    var l=encArray.length;

    for(var c=0;c1;)

    {

    var l=encArray.length;

    for(var c=0;c

    其中主体部分是:

    这里就是使用"ADODB.Stream"控件读取文件的方法,可以看到作者使用的读取类型是adTypeText(2),是在用文本读取方式读二进制文件!而按照文档改为adTypeBinary(1)类型后则读不到任何内容,不知道是为什么。

    其余部分代码则是在做编码转换工作,大体意思是读文件时要使用“ISO-8859-1”字符集,用http发送文件时则要使用“Windows-1252”字符集,这两种字符集只有极少数字符有差别,所以在读到的数据中找到有区别的部分一一转换为另一种字符集表示。

    ajax发送二进制流:

    为了进行二进制传输这里没有使用兼容旧版本IE的“window.ActiveXObject("Msxm12.XMLHTTP")”和“window.ActiveXObject("Microsoft.XMLHTTP")”,不知大家有没有支持这两种activex控件的二进制传输方法。

    在一篇教程里第六行前面有一行:

    xmlHttp.overrideMimeType('text\/plain; charset=x-user-defined');//:x-user-defined告诉浏览器不要解析返回数据

    加上这个一行后浏览器将不会对后台返回的数据的编码格式进行解析,具体来讲就是返回到前台的中文文本都显示为“ ”或“口”,我估计作者这样做是为了在前台接收后台传来的二进制数据。

    事实上只有火狐的XMLHttpRequest支持sendAsBinary方法,为了在IE和谷歌下使用,需要给XMLHttpRequest增加一个原型方法:

    添加二进制发送功能

    XMLHttpRequest.prototype.sendAsBinary = function(datastr) {

    function byteValue(x) {

    return x.charCodeAt(0) & 0xff;

    }

    var ords = Array.prototype.map.call(datastr,byteValue);

    var ui8a = new Uint8Array(ords);

    this.send(ui8a.buffer);

    }

    这里的代码就不太懂了,其中第六行IE8不支持、第七行IE9不支持。

    后台使用的是java serverlet,以下是最终调用的java类的代码:

    以上所述是小编给大家介绍的JavaScript读二进制文件并用ajax传输二进制流的方法。编程之家 jb51.cc 收集整理的教程希望能对你有所帮助,如果觉得编程之家不错,可分享给好友!感谢支持。

    相关文章

    总结

    如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

    如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

    展开全文
  • fread函数读二进制文件

    千次阅读 2021-01-24 22:14:40
    针对 ” 2)读二进制文件 ” 这部分内容,我写些和上面文章里不一样的。 fread函数 文件素材: 如下代码: [fid,Msg] = fopen('cube.ply','rt') BufSize = 8192; Buf = [blanks(10),char(fread(fid,BufSize,'uchar'...

    fread函数可以读取二进制文件的数据,并将数据存入矩阵。
    关于matlab操作文件的几个函数有文介绍:matlab文件操作fopen,fseek,fread,fclose等
    针对 ” 2)读二进制文件 ” 这部分内容,我写些和上面文章里不一样的,补充如下:

    fread函数

    原PLY文件素材:
    cube.ply
    代码:

    [fid,Msg] = fopen('cube.ply','rt')
    BufSize = 8192;
    Buf = [blanks(10),char(fread(fid,BufSize,'uchar')')];
    

    得到结果:

    Buf

    展开全文
  • 二进制编码以及二进制与十进制的转换
  • 二进制

    千次阅读 2018-12-10 11:07:39
    引用处: 二进制 二进制和十进制间小数怎么转换 ...的实现直接应用了二进制,因此现代的计算机和依赖计算机的设备里都用到二进制。每个数字称为一个比特bit(二进制位)。计算机中的二进制是一...
  • Java如何实现读取二进制文件

    千次阅读 2021-03-11 17:01:32
    Java如何实现读取二进制文件发布时间:2020-11-10 16:19:46来源:亿速云阅读:83作者:Leah这篇文章运用简单易懂的例子给大家介绍Java如何实现读取二进制文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对...
  • public class ReadFromFile {/*** 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。*/public static void readFileByBytes(String fileName) {File file = new File(fileName);InputStream in...
  • 近日,需要用Python读取二进制文件(见上图),然后解析出想要的数据,转化成16进制,在显示出来fp = open(path,'r+')s= fp.read(ioneblock)while '' != s :t = s.encode('hex')print 'first t is %t'%t遇到到一个莫名...
  • 展开全部JAVA中读取文件内容的方32313133353236313431303231363533e58685e5aeb931333365663531法有很多,比如按字节...需要的可以直接复制使用public class ReadFromFile {/*** 以字节为单位读取文件,常用于读二进...
  • 二进制文件的读写

    2021-06-05 10:25:52
    读二进制文件 • 打开方式必须加上 ios::binary • 使用 get、put、read、write 读写文件 • 慎用 eof()函数检测文件是否结束,建议使用peek() != EOF 判断。 这里有个小例子: 从二进制文件中读写资料 #include&...
  • C#实现二进制10进制

    千次阅读 2019-01-14 14:23:12
    using System; using System.Collections.Generic; using System.Linq; using System.Text;...using System....namespace 转十 { class Program { /// &amp;lt;summary&amp;gt; /// 求次...
  • 二进制与十进制的讲解与转换

    千次阅读 多人点赞 2022-05-15 09:41:54
    文章目录什么是十进制呢? 什么是二进制?十进制和二进制之间可以转换吗?十进制与二进制之间的转换二进制转...本文主要讲解二进制以及进制之间的转换,如果大家后觉得有用的话,还请大家多多支持博主:欢迎 ❤️点赞
  • 1、背景(Contexts)之前使用SQL把十进制的整数转换为三十六进制,SQL代码请参考:SQL Server 进制转换函数,其实它是基于、八、十、十六进制转换的计算公式的,进制之间的转换是很基础的知识,但是我发现网络上没有...
  • 计算机基础二进制.ppt

    2021-06-26 09:08:56
    计算机基础二进制.ppt (23页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!19.90 积分内容:基本制作制作人:时宽飞数学建模协会PPT制作交流Date1计算机基础教程超链接...
  • 二进制文件将内存中数据原封不至文件中,适用于非字符为主的数据。如果以记事本打开,只会看到一堆乱码。 其实,除了文本文件外,所有的数据都可以算是二进制文件。二进制文件的优点在于存取速度快,占用空间小,...
  • php读取二进制

    2021-03-22 20:18:18
    将php数据转换为二进制数据string pack ( string $format [, mixed $args [, mixed $...]] )将二进制数据转换为php数据array unpack ( string $format, string $data )$format:a – NUL-padded stringa – NUL- ...
  • 一、 十进制与二进制之间的转换 1.1 十进制转换为二进制,分为整数部分和小数部分 【1】整数部分 方法:采用"除2取余,逆序排列"法 即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个...
  • 十进制转换为二进制,分为整数部分和小数部分① 整数部分方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后数...
  • 二进制、八进制、十进制与十六进制之间的转换
  • 前言初识二进制Java中的byte类型Java中整数类型的最小值与最大值进制之间的转换前言不同进制的特点进制之间的转换二进制转十进制十进制转二进制二进制转八进制十六进制转二进制二进制转十六进制代码实现二进制与十...
  • C语言 二进制文件读写实例讲解

    千次阅读 2021-03-22 19:48:37
    二进制文件的读写是程序员们经常会遇到的一个场景,难是不难,但如果不熟悉的话,等到要用的时候还是会着急忙慌的。因此本文将结合一个具体的例子来介绍C语言中的二进制文件读写,这也是我自我学习的一个记录。 一...
  • C++实现读入二进制数并转换为十进制输出题目描述已知一个只包含0和1的二进制数,长度不大于10,将其转换为十进制并输出。输入描述输入一个二进制整数n,其长度不大于10输出描述输出转换后的十进制数,占一行样例输入...
  • 在计算机进行数据交换时,常常会有一个进制转换的过程,有时候数据过于庞大,为了方便存储管理,计算机会使用十六进制存储数据,Python一般采用int类型是十进制,作为硬件行业采用Python处理二进制、十六进制数据...
  • 【教学重点与难点】1、难点:位权表示法十进制转化为二进制2、重点:二、十进制间相互转换【学习者分析二进制、八进制、十进制、十六进制之间转换方法二进制、八进制、十进制、十六进制之间转换方法:十进制与二进制...
  • PHP读取二进制文件的方法

    千次阅读 2021-03-22 20:18:17
    很多时候,数据并不是用文本的方式保存的,这就需要将二进制数据读取出来,还原成我们需要的格式。PHP在二进制处理方面也提供了强大的支持。任务下面以读取并分析一个PNG图像的文件头为例,讲解如何使用PHP读取和...
  • 十进制转换为二进制,分为整数部分和小数部分① 整数部分方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后数...
  • 二进制编码数字

    2021-06-24 02:52:42
    二进制编码数字[1],即计算机编码,指电脑内部代表字母或数字的方式。中文名二进制编码数字外文名Computer number format别名计算机编码领域二进制编码数字位元、字节、字组位元和无号整数编辑语音计算机的基本储存...
  • INTRO我正在尝试对包含sms信息的二进制数据文件...我不知道用哪种语言写LG PhoneManager,但在二进制文件中我了"CObTree","CFolder","CMessage"这样的字符串:也许这个线索没什么意思,也许这表明Cobol / .ne...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 275,928
精华内容 110,371
热门标签
关键字:

二进制的10怎么读