Matlab의 도움말 파일에서 타입 변환이 어떻게 설명되었는지 이해했습니다. 하지만 내 결과에 대처할 수는 없습니다. 다음과 같이 3x4 행렬을 유형 변환하려고했습니다.Matlab의 타입 변환
A= -0.0022 -87.8788 -96.2848 -96.9586
0.9891 -52.9250 -52.7722 -52.7780
0.1473 -4.8680 -6.0184 -5.9894
ANS = typecast(A(:), 'uint16');
나서 ANS 벡터 -0.0022가 65,304 및 47886. 두 개의 16 비트 값이 어떻게 계산 한 수단
ANS=65304
47886
13518
16253
55853
15894
49650
49839
45875
49747
50835
49307
37329
49856
5820
49747
38546
49344
60110
49857
7340
49747
43369
49343
된다? 그러면 C++로 어떻게 구현할 수 있습니까? 는 C++에서, I는 I가 65304 및 47886.
많은 설명에 많은 감사드립니다. – batuman
하지만 아직 뭔가가 없습니다. float f = -8.7878799e + 001처럼 C++에서 시도한 경우; 부호없는 짧은 a = static_cast <부호없는 int> (f); unsigned short b = static_cast (f) >> 16; 저는 65449와 65535를 받았습니다. 그렇다면 형 변환 (uint16 ([65449 65535]), '단일'), NaN을 얻었습니다. –
batuman
@batuman'static_cast' 대신'reinterpret_cast'를 사용해야한다고 생각합니다. 이 질문보기 http://stackoverflow.com/questions/1723575/how-to-perform-a-bitwise-operation-on-floating-point-numbers –