2010년 5월 22일 토요일

[C++] 비트연산자

C++에서는 bit연산자를 지원한다.
여기서 비트 연산자는 2진수에서 자주 쓰이는 연산을 말한다.
즉 and,or,xor,not이 그들이다.

1. and: A and B를 C++에서는 아래와 같이 계산한다.
Result = A & B

2. or: A or B를 C++에서는 아래와 같이 계산한다.
Result = A | B

3.xor: 이 A xor B를 C++에서는 아래와 같이 계산한다.
Result = A^B

4.not: not(A)를 C++에서는 아래와 같이 계산한다.
Result = ~A

나머지 bit연산자는 (예nor,nand등등) 이 기본적인 연산자로부터 파생하여 계산할수 있다.

[C++] 16진수 8진수 출력하기

C++은 C와 달리 cout이라는 출력방법을 쓰기 때문에 변수의 유형을 지정해줄수 없다.
그래서 cout << value << endl 을 그냥 실행하게 되면 변수의 유형 그대로 출력이 되게 된다.

그렇다면 C++에선 10진수 16진수 8진수등으로 출력할수는 없는것일까?
답은 아니다.

C++에서도 16,10,8진수중 하고싶은걸 골라서 출력할수 있다.

C++에서 16진수 출력방법
cout << hex << value

C++에서 8진수 출력방법
cout << oct << value

C++에서 10진수 출력방법(이건 default이기 때문에 위 연산자( hex와 dec)를 쓰지 않았다면 안써도 된다)
cout << dec << value

아쉽지만 C++에서는 이진수 출력은 지원해주지 않는다(C도 마찬가지 이다), 이진수는 스스로 프로그램을 짜서 출력하거나 이진수 관련 해더 파일을 불러서 그 라이브러리에 있는 함수를 써야 한다.

[Matlab] 메트릭스 역순으로 바꾸기

한 메트릭스를 역순으로 바꾸는데는 2가지 방법이 있다, 세로 역순과 가로 역순이다.
이 두가지에 대해서 각각 함수가 존제한다.

1.세로 역순
a = flipud(b);

예를 들어서 b = [1,2,3;2,7,6]이라면 a는 [2,7,6;1,2,3]이 된다. 말그대로 세로 역순이 된다.


2.가로 역순
a = fliplr(b);
예를 들어서 b = [1,2,3;2,7,6]이라면 a는 [3,2,1;6,7,2]가 된다. 말그대로 가로 역순이 된다.




2010년 5월 14일 금요일

[C++] VS 2005, VS 2008: fatal error C1902 에러 해결법

원래 잘 되던 Visual Studio(난 2008을 쓰고 있다) 가 잘 안된다

빌드할때 "fatal error C1902: 프로그램 데이터베이스 관리자가 일치하지 않습니다. 설치를 확인하십시오." 가 계속 뜬다.

인터넷에서 한동안 찾아본 결과 해결법은 아주 간단했다.

fatal error C1902 가 뜨는 이유는 컴파일러가 mspdb80.dll , mspdbsrv.exe , mspdbcore.dll 을 찾지 못해서 생기게 된다. 이 파일들을 찾아서 "VS설치경로\VC\bin"에 복사해주면 된다.
이 파일들은 "VS설치경로\Common7\IDE" 에 있다. 머 그냥 VS설치경로에서 search를 해도 금방 나온다.

만약에 이렇게 해도 문제가 해결되지 않을경우 아래의 방법들도 시도해보기를 추천한다.(밑에 방법들을 사용하기 전에 위 3파일을 VS설치경로\VC\bin"에 꼭 복사해 주어야 한다. )
1. cmd로 command창을 띄워 "VS설치경로\VC\bin"에 들어가 vcvars32.bat를 실행시켜준다.(꼭 command창을 사용하여 실행해야 한다.)
2. C:\windows\system32폴더 안에 있는 mspdb80.dll과 mspdbcore.dll을 지워준다. 이 두 파일을 지우면 시스템에 문제가 생길지 모르니(아직 생긴 문제는 없지만 혹시 모르니까..) 백업을 해두자.

이래도 해결되지 않으신 분들은 댓글 남겨주시기 바랍니다^^

2010년 4월 26일 월요일

드디어 블로그 연지 7개월만에 방문자가 3000명을 넘었습니다.

여러분의 뜨거운 성원에 감사 드립니다~

이번달은 방문자가 700명가까이 되네요

하루 평균 20명정도 방문하면 이번달 700명의 목표는 무난히 넘길듯 하네요 ^^

다음달 목표는 1000명입니다!

1년안에 하루평균 방문자수 100을 넘길수 있는 블로그가 되자~!

2010년 4월 3일 토요일

[Matlab] - 소수를 정수로 바꾸기!

Matlab에서는 '소수 -> 정수' 로 바꾸는데는 네가지 명령어가 쓰인다.


1. n = ceil(x)
  소수점 뒤에 숫자를 무조건 올린다.
  예:
      ceil(3.9) = 4
      ceil(1.4) = 2
      ceil(2.001) = 3
      ceil(-3.9) = -3
      ceil(-3.1) = -3
   

2. n = floor(x)
    소수점 뒤에 숫자를 무조건 내린다.
    예:
        floor(3.8) = 3
        floor(3.01) = 3
        floor(4.9999) = 4
        floor(-1.2) = -2
        floor(-2.9) = -3

3. n = fix(x)
     x위아래 정수중에서 0에 가까운 정수를 택한다
     예
         fix(3.3) = 3
         fix(4.99) = 4
         fix(-1.2) = -1
         fix(-8.999) = -8

4. n = round(x)
     반올림을 한다
     예:
          round(3.5) = 4
          round(9.1) = 9
          round(-1.1) = -1
          round(-2.6) = -3

마우스 오른쪽 버튼 해제

네이버나 다음 블로그를 볼때면 퍼가고 싶은 그림이 많은데...

대부분의 그림들은 락이 걸려있어서... 우클릭이 금지되어 있다. ㅠㅠ

꼭 퍼가고 싶은 그림이 있어서, 우클릭 해제 방법을 찾았는데... 가장 간단한 방법은 이거였다.


즐겨찾기에

javascript:function r(d){d.oncontextmenu=null;d.onselectstart=null;d.ondragstart=null;d.onkeydown=null;d.onmousedown=null; d.body.oncontextmenu=null;d.body.onselectstart=null;d.body.ondragstart=null;d.body.onkeydown=null; d.body.onmousedown=null;};function unify(w){r(w.document);if(w.frames.length>0){for(var i=0;i<w.frames.length;i++){try{unify(w.frames[i].window);}catch(e){}};};};unify(self);

이 웹페이지를 추가한다.

그리고 우클릭이 막힐때마다 이 즐겨찾기를 한번씩 클릭해주면 끝!
그럼 우클릭이 안막히고 잘 될거다~ㅋㅋ