2017-12-26 2 views
-5

Java 프로그램을 사용하여 판독. 여기서 나는 4 개의 char 값으로 float을 깨고이 작업을 잘합니다. 하지만 다시 해당 float 값을 서버 끝내기 위해 해당 Java 코드가 필요합니다.파단 플로트 값은 TCP에 송신하며 변환 플로트 데이터가 TCP/IP를 사용하는 마이크로 컨트롤러를 송신하도록 형성이 C 코드를 사용

나는 자바에 대한 새로운입니다. 그래서 제발 도와주세요.

/********************************************* ***********************************/

unsigned char outbox[5]; 

void breakDown(void) 
{ 
    int index=0; 
    float member=-600.231;  

    unsigned long d = *(unsigned long *)&member; 
    outbox[0] = d & 0x00FF; 
    outbox[1] = (d & 0xFF00) >> 8; 
    outbox[2] = (d & 0xFF0000) >> 16; 
    outbox[3] = (d & 0xFF000000) >> 24; 

    } 


    void buildUp(void) 
    { 
    unsigned long d; 
    unsigned index; 

    d = ((long)outbox[3] << 24); 
    d|= ((long)outbox[2] << 16); 
    d|= ((long)outbox[1] << 8); 
    d|= ((long)outbox[0]); 

    float member = *(float *)&d; 
    printf("Float output=%f\n\n",member); 

    } 
+7

스택 오버플로가 무료 코드 변환 서비스가 아니므로이 질문을 주제와 관련이없는 것으로 닫으려고합니다. 참조하십시오 : [왜 누군가가 나를 도울 수 있습니까? 실제 질문이 아닌가요?] (http://meta.stackoverflow.com/q/284236) – EJoshuaS

답변

0

java.io.DataInputStream.readFloat() (비트 INT) java.lang.Float.intBitsToFloat를 호출하는, 당신은 그것을 시도 할 수 있습니다. 왜 당신은 다른 세그먼트로 변수를 분할하려는

0

(먼저 API를 문서를 읽기)? 바로 그때, 문자열로 보내 플로트 변수로 변환 JAVA 함수를 사용합니다.

String numberAsString = "153.25"; 
float number = Float.parseFloat(numberAsString);