Clear Filters
Clear Filters

How to convert signed integer (from -8 to 7) into 4 bit signed binary

6 views (last 30 days)
I wanted to convert a vector (approximately 270k entries) of integers ranged from -8 to 7 into 4 bit signed binary, and I used
dec2bin((typecast(int8(Data), 'uint8')), 8)
to find the 8 bit signed binary for my data. However I need to take either the upper 4 bits of the 8 bits, or convert them into 4 bit signed binary directly from the integers as they can be expressed as 2's complement 4 bit signed binary. Could anyone teach me how to do that?
My current situation: I have all of them as 8 bit signed binary, but some entries only appear as '10', '1', '11', etc. i.e. not 8 bits even though I tried to use
dec2bin(d, n)
So when I tried to convert the numbers to strings and take the first 4 bits with
num2str
all I would get are spaces.
Any help would be greatly appreciated!!

Answers (1)

Walter Roberson
Walter Roberson on 27 Nov 2017
int2bin4 = dec2bin([15:-1:8,0:7],4) - '0'; %or leave out the '0' if you want character output;
translated_vector = int2bin4(YourVector(:) + 9, :);
  4 Comments
Jeffrey Chen
Jeffrey Chen on 27 Nov 2017
All three gave me 0, but I just realized the max and min are 15 and -13 respectively... so there must be a mistake when I'm normalizing the decimal value from -1 to 1 to integer values.
My goal is to take that vector of about 270k elements generated by Audacity that range from -1 to 1 (which should be 16 bits) and convert (or normalize) them into 4 bit signed binary values directly, or 8/16bit and take the 4 most significant bits. Do you have any suggestions for to me to approach this? My original command to get (what I thought would be) -8 to 7 integers was
Data_int = round(Data_original.*(2^4-1)./max(Data_original));
but apparently the max/min elements turn out to be more than what I expected. Thank you so much!!
Walter Roberson
Walter Roberson on 27 Nov 2017
Data_int = int2bin4(floor(Data_original * 15/2) + 9, :) ;
int2bin4 is acting as a lookup table to provide an efficient way to do the data conversion

Sign in to comment.

Categories

Find more on Data Type Conversion in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!