Byte ordering을 준수해야 하는 이유

uamyd5279의 이미지

제가 맡은 부분이...사이즈에 매우 영향을 받는 부분이라서
매우 섬세하고 세심하게...비트처리단위까지 아끼고 아껴서 사용을 하는데요.

바이트오더링 때문에...
reserved를 넣어야 해서 말이죠

제가 생성하는 데이타는 길어야 5바이트 짧을 때는 2바이트까지도 떨어지는데...바이트 오더링때문에 8바이트로 만들어줘야 해서요

KLDP의 다른 고수님들의 생각을 함 듣고 싶네요....

hokim의 이미지

uamyd5279 wrote:
제가 맡은 부분이...사이즈에 매우 영향을 받는 부분이라서
매우 섬세하고 세심하게...비트처리단위까지 아끼고 아껴서 사용을 하는데요.

바이트오더링 때문에...
reserved를 넣어야 해서 말이죠

제가 생성하는 데이타는 길어야 5바이트 짧을 때는 2바이트까지도 떨어지는데...바이트 오더링때문에 8바이트로 만들어줘야 해서요

KLDP의 다른 고수님들의 생각을 함 듣고 싶네요....


네트워크상에서 다른종류의 cpu를 가지고 있는 머신들사이에 데이타를 주고 받기 위해서는 반드시 데이타를 big endian 으로 바이트 오더링을 해야 합니다. 에를 들어 intel 머신은 little endian, 알파칩은 big endian으로 데이타를 처리하는 바이트순서가 다릅니다. 그래서 네트웍상의 데이타를 big endian로 정해놓고, little endian 머신들에서 데이타를 내보내떼는 little endian을 big endian으로 받을때는 big endian을 little endian으로 바이트 오더링을 하도록 하게 되어 있습니다.
그런데 4바이트 단위로 바이오더링을 해야하지 않나요? 아직은 32비트 머신들이 주종일덴테....
만약 동일한 인텔머신들만 데이타를 주고 받는다면 바이트 오더링 할 필요가 없겠죠
비행소년의 이미지

아무리봐도. 바이트 오더링이 아니라, 바이트 정렬로 보이는데요. :shock:

높이 날다 떨어지면.
아푸다 ㅡ,.ㅡ

오호라의 이미지

구현의 용이성을 따지자면 그냥 8byte일테지만...그럼 문제가 안될테고...

해시함수, 압축을 써보시지요. size가 reserved시만 문제가 된다면...

아니면 2byte때 남는 2byte에 찡겨보네도 될것 같은데...

추가적인 비용이 들겠지만...

아니면 매우 귀찮은 일이 되겠네요...^^

Hello World.

doldori의 이미지

비행소년 wrote:
아무리봐도. 바이트 오더링이 아니라, 바이트 정렬로 보이는데요. :shock:

생각해보니 그렇겠군요. 바이트 오더링 때문에 8바이트로 맞춘다는 말이 무슨 뜻일까
고민했습니다. ^^;
myueho의 이미지

속편하게 인코딩된 텍스트로~

cbycby의 이미지

uamyd5279 wrote:
제가 맡은 부분이...사이즈에 매우 영향을 받는 부분이라서
매우 섬세하고 세심하게...비트처리단위까지 아끼고 아껴서 사용을 하는데요.

바이트오더링 때문에...
reserved를 넣어야 해서 말이죠

제가 생성하는 데이타는 길어야 5바이트 짧을 때는 2바이트까지도 떨어지는데...바이트 오더링때문에 8바이트로 만들어줘야 해서요

KLDP의 다른 고수님들의 생각을 함 듣고 싶네요....

사이즈가 중요하다면 pragma pack(1)을 써서
그대로 보내세요... 문제 없을거예요...

http://www.korone.net QT 커뮤니티 사이트

댓글 달기

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 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • 사용할 수 있는 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>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • You can use Textile markup to format text.
  • 사용할 수 있는 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>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 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>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.