casting 질문

granite의 이미지

4바이트에서 8바이트로 캐스팅을 하려고 하는데 이때 4바이트의 MSB가 확장되지 않게 하려면 어떻게 해야 하나요.
즉 ffff ffff를 0x0000 0000 ffff ffff 식으로요.

doldori의 이미지

질문이 부적절합니다. 캐스팅은 어떤 형에서 다른 형으로 변환하는 것이지
바이트 수로 따지는 것이 아닙니다. 그리고 내부의 비트열 표현에 관한 문제까지
들어 있어서 함부로 답변하기 어렵습니다.
질문의 의도를 볼 때 4바이트라는 형을 unsigned로 캐스팅하는 것을
원하시는 것이 아닌가 짐작은 합니다만.

익명 사용자의 이미지

아 예 unsigned int에서 unsigned long으로 캐스팅 하는데
이게 인텔에서는 아무 문제가 없는데 ARM에서 문제가 생기네요.

예를 들어 0xf38a2bd6은
인텔에서는 0x00000000f38a2bd6으로 원하는데로 캐스팅 되나
ARM에서는 0xf38a2bd600000000 으로 되버리네요.

익명 사용자의 이미지

ARM에서 unsigned long 이 64bit 인가요? 32bit 인걸로 알고 있는데...
32bit 머신에서는 unsigned long이 32bit 인걸로 알고있는데...

byung82의 이미지

byte order 때문입니다.

어쩔수 없이 변경을 해주셔야 합니다.

htonl 같은것으로 하셔도 되고 직접 shift로 하셔서 됩니다.

구글에서 검색하면 좋은 알고리즘과 소스코드도 많으니 참조하시기 바랍니다.

그럼

익명 사용자의 이미지

casting 질문

4바이트에서 8바이트로 캐스팅을 하려고 하는데 이때 4바이트의 MSB가 확장되지 않게 하려면 어떻게 해야 하나요.
즉 ffff ffff를 0x0000 0000 ffff ffff 식으로요.

mykhs7200의 이미지

여러 가지 방법이 있지만 가장 간단하게
or 연산을 한 번 해보면 됩니다.

f f f f f f f f --> 4 bytes
| 0000 0000 0000 0000 --> 8 bytes
--------------------
0000 0000 f f f f f f f f

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.