2014-12-30 2 views
2

어떻게 예를 들어, 바이너리 형태로 double 형 번호를 나타낼 수 binaryconvert.com는 매트랩 그것을이중 형태 숫자로 표현하는 방법은 무엇입니까?

bin = 0100000000001001001000011111100111110000000110111000011001101110 

을처럼 배열

dec = 3.14159 

는 IEEE 754 배정도 이진 표현으로 구성? similar question이 있지만 Matlab에는 해당되지 않습니다.

+0

http://www.mathworks.com/matlabcentral/fileexchange/39113-floating-point-number-conversion – rayryeng

답변

1

다음을 수행 할 수 있습니다 :

hexdec = num2hex(dec); 
bin = hexToBinaryVector(hexdec); 

예 :

이것은 invididual 바이트를 얻을 수 typecast(...,'uint8') 수행 할 수 있습니다
hexToBinaryVector(num2hex(pi)) 
ans = 
    1100000000001001001000011111101101010100010001000010110100011000 
+0

FYI ['hexToBinaryVector' (HTTP : //www.mathworks.com/help/daq/ref/hextobinaryvector.html)가 데이터 수집 도구 상자에 있습니다. 나는 학문적 인 설치로 대부분의 툴박스를 가지고 있지만, 나는이 것이 불행하게도 일반적이라고 생각하지 않는다. 또한 첫 번째 비트 (부호 비트?)는 @ LuisMendo의 대답과 OP 질문의 URL에 의해 반환되는 것과 반대 인 것으로 보입니다. – horchler

1

; 바이트 엔디안을 변경하려면 fliplr (적어도 내 컴퓨터에서 필요합니다). dec2base(...,2,8)으로 각 바이트를 2 진수로 변환합니다. 최종적 reshape '일렬로 보내고 :

bin = reshape(dec2base(fliplr(typecast(dec,'uint8')),2,8).',1,[]); 
관련 문제