I am trying to read a binary file with columns of data in various format (int32,uint32,int16,int64,etc.). As there are many columns of data, I want to speed up my reader by reading the whole file at once in increments of 8 bits and then recovering the various formats using the typecast function.
% Move to start of binary file (header is ascii format of 3759 bytes)
fseek(fid,3759,'bof');% Read the data file as 8 bit increments (each row has 16660 bytes)
data = uint8(fread(fid,[16660,Inf],'16660*uint8'));% Attempt to recover first data element of type int32
val1 = data(1:4,1);val2 = typecast(uint8(val1),'int32');
Running this code I get that
val1 = [0 0 22 229]val2 = -451543040
Whereas the true value should be 5861. What am I doing wrong?
Best Answer