[질문] 최상의 비트만 인식을 못합니다.

jjasook의 이미지

자바에서 int값을 바이트 배열에 저장한 후,
c서버로 보낸 후, 값을 읽어 들이면,
한 바이트에서 최상의 비트가 1로 셋팅이 되어 있으면 값을 제대로 읽지를 못합니다.

즉, 1~127 까지는 잘 읽고, 128~255 까지 제대로 못 읽고,
256~ 에서 또 최상위 비트가 셋팅이 되어 있으지 않은 숫자까지는 잘읽고
이러한 식입니다.

bit : 8 7 6 5 4 3 2 1
----------------------------------------
1 1 1 1 1 1 1 1

이렇게 셋팅이 되어 있으면, 63으로 인식이 됩니다.
즉, 1~6비트 까지만 읽어 들입니다.

byte[] header = new byte[4];

header[start_index] = (byte)((int_value>>24)& 0xff) ;
header[start_index+1] = (byte) ((int_value>>16)& 0xff) ;
header[start_index+2] = (byte) ((int_value>>8)& 0xff );
header[start_index+3] = (byte) ((int_value>>0)& 0xff );

String data = new String(header);

pw.print(data);

----------------------------------------------------------

이렇게 보내서, 다음과 같이 읽습니다.

typedef data_t{
int tid;
}data;

data Test_data;

read(fd, &Test_data, 4);
printf(" %d", Test_data.tid);

=---------------------------------------------

알려주세요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.