So, while using Fread to open a 4 byte I used uint32 and uint64 for 8 byte value. But what should i do if i want to read a 12 byte value.( for a 6 byte i used ubit(6*8) but cant use 12*8. Any suggessions?
조회 수: 9 (최근 30일)
이전 댓글 표시
Fread(fid, (precision) *ubit48, skip bytes) for a 6 byte value , so what precision should I use for 12 byte value? Thank you
댓글 수: 0
답변 (1개)
Jan
2016년 4월 30일
data = fread(fid, 12, '*uint8');
Now you have the 12 single bytes. You can join the first 8 byte to a UINT64 using typecast:
low = typecast(data(1:8), 'uint64');
high = typecast(data(9:12), 'uint32');
But you see, that you cannot store the result in an integer tyoe with 96 bits directly, because Matlab does not habe such a type. Search for "Matlab vpa" to learn how to use arithmetics with variable precision.
댓글 수: 3
Walter Roberson
2016년 5월 1일
You cannot do that for 12 byte values. Instead loop reading 12 buttons at a time and then fseek() forward by the skip.
If you have a sequence that regular you should consider using memmapfile
참고 항목
카테고리
Help Center 및 File Exchange에서 Numeric Types에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!