• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

bitset<>() 은 정수형 변수에만 적용되나요?

22.08.29 16:34 작성 조회수 156

0

bitset<>() 이 단순하게 메모리에 저장된 bit 를 보여주는 함수라고 생각했는데 float 형 변수 몇개를 사용해보니 전부다 00000..000000이 나와서 질문 드립니다.

답변 1

답변을 작성해보세요.

0

강민철님의 프로필

강민철

2022.08.30

그런 것으로 보입니다.

가령 아래와 같은 코드의 경우

#include <bitset>
#include <iostream>

int main()
{
    std::cout << std::bitset<32>(32.5) << std::endl;

    return 0;
}

g++로 컴파일했을 때 아래와 같은 warning이 나오는 걸 볼 수 있습니다.

test.cc:6:34: warning: implicit conversion from 'double' to 'unsigned long long' changes value from 32.5 to 32 [-Wliteral-conversion]
    std::cout << std::bitset<32>(32.5) << std::endl;
                 ~~~             ^~~~

unsigned long long 형을 지원하는 모양이네요.

찾아보니 아래와 같은 유사한 질문이 있었습니다.

참고가 되실 것 같아 함께 공유드립니다.

https://stackoverflow.com/questions/46856938/why-does-stdbitset-only-support-integral-data-types-why-is-float-not-supporte