5월, 2020의 게시물 표시

virtualbox 특이한 오류

virtualbox로 ubuntu 등을 돌릴 때 가끔 부팅 시 무한정 로딩하는 경우가 생겼다. 응답없음이 떠서 강제종료하고 다시 켜봐도 똑같은 증상이 반복되었다 검색해서 여러 해결 방법을 써도(0x80004005, 0x80040154 오류도 막 떠서 재설치, 설치된 OS 삭제 후 다시 import, sfc /scannow 등) 해결되지 않았는데  우연히 발견한 원인은 단순했다. 바로 에어팟 때문이었다. 에어팟을 블루투스로 노트북에 연결하고 있으면 virtualbox에서 ubuntu를 부팅시 무한로딩을 하게 된다. 아마 우분투에서도 오디오 잡으려하고, 윈도우에서도 잡으려 하고 이게 무한정 반복되는 게 원인으로 추정된다(작업표시줄 오른쪽 밑에서 뭔가 자꾸 바쁘게 움직임) 해결방법은 당연히 에어팟을 잠깐 연결 해제하고 부팅 후 다시 연결하는 것이다. 그러니 virtualbox에서 부팅이 안 될 때는 에어팟 등의 오디오 기기가 연결 되어 있는지 한번 확인하고 해제도 한번 해보고 그러자. @오류환경 윈도우10, 갤럭시북 이온, virtualbox 6.x.x, ubuntu 16.04 LTS, 에어팟 2세대.

C++ int, long int, long long int 어떤 걸 써야할까

이미지
(출처:  https://ko.cppreference.com/w/cpp/language/types ) (LP32, ILP32, LLP64, LP64는 data model을 나타내며, 글 맨 아래 '참고'에 정리해둠) C++ 정수형 데이터 타 입들 C++ standard를 기준으로      short                     - 최소 16비트      int                         - 최소 16비트      long int                - 최소 32비트      long long int        - 최소 64비트 (C++ standard는 정수형 데이터 타입의 명확한 크기를 정해두지 않았다.  다만 최소한의 하한선만 정해놓았다) 일반적으로 short 는 16 비트 , int 는 32 비트로 알고 있다 . 그래서 int 는 -2^31 ~ 2^31 – 1 범위의 정수를 표현할 수 있고 , 이보다 크거나 작은 정수를 표현하기 위해서는 비트수가 더 필요하다 . 그러면 long 을 써야하나 long long 을 써야하나 ? 확실한 방법은 long long int 를 쓰는 것이다 . C++ 표준을 보면 long int 는 최소 32 비트를 보장한다고 한다 . -2^31 ~ 2^31 – 1 범위를 넘어서는 정수를 표현하기 위해서는 C++ 표준 기준으로 최소 64 비트를 보장하는 long long int 를 써야한다 . (long int를 쓸 경우, 윈도우 환경에서는 int와 똑같은 범위까지만 표현할 수 있다) // 나만의 생각 시작 그러면 long int 는 필요 없는 것 아닌가 ? ILP32, LLP64, LP64 data model만 고려한다면 그렇다고 볼 수 있지 않을까 싶다. 왜냐하면 위 세 개의 data model 에서는 int 와 long int 의 비트수가 같거나,  long int 와 long long int 의 비트수가 같기 때문이다 . long int가 int