[C++] 2진수의 표현은? ex> 0xFFFF(16진수) , 0777(8진수)

gyxor의 이미지

부동소수에 관한 공부를 하던중에
1.11111111 등의 2진수를 float형 변수에 넣어야 했습니다.
float f=1.1111;
이러한 구문인데요.. 이렇게 하면 10진수로 보기 때문에
2진수로 표현을 해줘야 하는데요..

0777 0은 8진수를 의미
0x1ff 0x,0X는 16진수를 의미

이렇게요..
아무리 찾아봐도 없어서요...
혹시 표현안되는것인가요? vc 6.0에서 했습니다.
답변부탁드립니다.

doldori의 이미지

C++에서 부동형 상수를 이진수로 표현하는 방법은 없습니다. 물론 정수형 상수도
이진수로는 표현할 수 없지만 8진수이나 16진수 표현으로부터 쉽게 변환이
가능하지요. 이런 기능이 필요하다면 이진수 표현의 문자열을 십진수로 바꾸는
함수를 만드시면 되겠네요. 원리는 간단합니다.
"1.111" --> 1 + 1/2 + 1/4 + 1/8 = 1.875
그보다 문자열을 파싱하는 작업이 더 귀찮겠는데요.

참고로 C99에서는 부동형도 16진수로 표현하는 것이 가능합니다.

yui의 이미지

#include <stdio.h>
int main()
{
        unsigned int i = 0x3f8e38e4;
        printf ("%f\n", *(float*)&i);
}

$ gcc float.c && ./a.out
1.111111

이런걸 원하시는 건가요?

float kaka = 1.1111111111111111111111111;
unsigned char* huhu = &kaka;
printf("%x %x %x %x", huhu[3], huhu[2],huhu[1], huhu[0]);

이렇게 하시면 되겠지요.
gyxor의 이미지

unsigned int 에다가 IEEE754 규약대로 float형의 비트값
x xxxxxxxx xxxxxxxxxxxxxxxxxxxxxxx
넣어주고서 %f로 출력하면 부동소수로 출력하는군여..
char형으로 끊어서 확인도 가능하군여..
유용한것 배웠습니다.

그런데 제가 찾던것은.. float 변수에 10진수를 넣는게 아니라 2진수를 입력하는것이었습니다.
작성해주신소스에서
float kaka = 1.1111111111111111111111111;
이렇게 하더라도 이값은 2진수가 아니라 10진수로 인식을 하니까요...
암튼 감사합니다..

익명 사용자의 이미지

int a = 0b101;

printf("a(%d)\n", a);

위의 결과는...5입니다.

익명 사용자의 이미지

c++엔 없고 C99엔 hexadecimal floating constant라고 비슷한 것이 있습니다.

C++11 에 이것이 새로 추가되었는지 아닌지는 모르겠네요.

http://stackoverflow.com/questions/4825824/hexadecimal-floating-constant-in-c

댓글 달기

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