How to convert integer to 12 bit binary and vise versa
조회 수: 63 (최근 30일)
이전 댓글 표시
Hello, I want to convert integers in the range -400 to +800 to 12 bit binary and vice versa.
dec= -333;
a= decimalToBinaryVector(typecast(int16(dec),'uint16'),16);
str_x = num2str(a);
b=typecast(uint16(bin2dec(str_x)),'int16')
The above code gives me 16 bit Binary value. I want to convert the integer to 12 bit binary and vice versa.
댓글 수: 2
Walter Roberson
2020년 3월 5일
Why? Your code at https://www.mathworks.com/matlabcentral/answers/508682-how-to-pass-binary-values-to-mex already does 12 bit conversion.
채택된 답변
Walter Roberson
2020년 3월 5일
편집: Walter Roberson
2020년 3월 5일
mod(typecast(int16(dec), 'uint16'), 4096)
and convert to binary.
Or
bitget(int16(dec), 12:-1:1)
which does the binary conversion. You might want to double() the output for your purposes.
댓글 수: 4
추가 답변 (1개)
Steven Lord
2020년 3월 5일
There's no int12 data type in MATLAB. Depending on what you want to do with this data, if you have Fixed-Point Designer you could store it as an fi object. See this documentation page for the basics of how to work with fi objects.
>> A = sfi(10, 12, 0)
A =
10
DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 12
FractionLength: 0
>> bin(A)
ans =
'000000001010'
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!