※요약

어떤 수가 있을 때, 이 수가 2의 n승인지 판별하는 방법입니다.



※특징

비트 연산을 이용해 속도가 빠름



※함수 설명

2의 3승인 8을 2진수로 표현하면 아래와 같습니다.(편의상 8비트로 표현)

0000 1000

여기서 1을 빼주면

0000 0111이 되고, 0000 1000와 & 연산을 하게 되면 0이 나옵니다.


0000 1000

0000 0111

-------------&연산 (& 연산자는 두 개의 비트가 모두 1일 때 1이 됨, 고로 여기서는 0이 됨)

0000 0000


비트 연산 보기





※예제

#include <stdio.h>

bool CheckPowerOfTwo( int nNum );

int main( )
{
	int x = 0;
	bool bState = false;

	printf( "-1 입력시 종료 됩니다.\n" );

	while( x != -1 )
	{
		printf( "숫자를 입력하세요 : " );
		scanf( "%d", &x );

		bState = CheckPowerOfTwo( x );

		printf( "%d은(는) 2의 n승이 %s\n\n", x, (bState ? "맞습니다." : "아닙니다.") );
	}

	return 0;
}

bool CheckPowerOfTwo( int nNum )
{
	int nResult = nNum & (nNum-1);

	if( nResult == 0 )
	{
		return true;
	}
	else
	{
		return false;
	}
}





※요약

COLORREF : 

-윈도우즈에서는 색상값을 표현하기 위해 COLORREF라는 데이터형을 사용

-부호없는 32비트 정수형

-R, G, B 각각 1바이트(8비트)이며 0~255 범위의 농도를 표현


RGB : 

-빛의 3원색인 적, 녹, 청을 혼합하여 색을 나타내는 방식



※특징

아래 소스는 윈도우 및 리눅스에서 사용 가능하고 필요한 부분만 붙여넣고 사용하면 됩니다.

윈도우 상에서만 사용할 소스 코드라면 아래와 같이 긴 소스 코드가 필요 없고 

RGB매크로와 GetRValue, GetGValue, GetBValue매크로만 사용하면 됩니다.


매크로가 있는데 굳이 함수로도 만든 이유는, 리눅스 상에서 사용할 때 편할 걸로 하기 위해서 입니다.


비트 연산이 이해가 안되면 직접 종이에 써 보면서 하면 쉽습니다.



※예제

#include <stdio.h>

#ifdef WIN32	//윈도우 환경이면 windows.h를 추가(윈도우 환경이어도 컴파일 환경에 따라 WIN32가 없을 수 있음)
#include <windows.h>
#else			//윈도우 환경이 아닐 경우 WinDef.h나 WinGDI.h에 선언, 정의된 내용 중 필요한 것들을 아래에 작성
//아래의 DWORD, WORD, BYTE, COLORREF는 WinDef.h에 선언된 내용
typedef unsigned long		DWORD;
typedef unsigned short      WORD;
typedef unsigned char       BYTE;
typedef DWORD				COLORREF;

//아래의 RGB, GetRValue, GetGValue, GetBValue는 WinGDI.h에 선언된 내용
#ifndef RGB
#define RGB(r,g,b)			((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(b))<<16)))
#endif

#ifndef GetRValue							//GetRValue가 선언되어 있지 않다면
#define GetRValue(rgb)		( (BYTE)(rgb) )	⁄⁄GetRValue를 내가 선언
#endif
#ifndef GetGValue
#define GetGValue(rgb)		( (BYTE)(((WORD)(rgb))>>8) )
#endif
#ifndef GetBValue
#define GetBValue(rgb)		( (BYTE)((rgb)>>16) )
#endif
#endif

//아래 3개의 함수들은 int대신 BYTE형으로 내부 처리 및 반환을 해도 상관없지만
//32비트 CPU의 기본 처리 단위는 4byte이므로 int형으로 처리하는 게 더 낫다.
int REF2R( COLORREF rgb );
int REF2G( COLORREF rgb );
int REF2B( COLORREF rgb );

int main( )
{
	DWORD dwTemp = RGB( 56, 128, 108 );

	int nR1 = REF2R( dwTemp );
	int nG1 = REF2G( dwTemp );
	BYTE nB1 = BYTE( REF2B(dwTemp) ); //int형을 반환하지만, 반환하는 값의 범위가 BYTE형 범주이므로 상관없음

	//int로 받아도 되고 BYTE로 받아도 된다.
	BYTE nR2 = GetRValue( dwTemp );
	BYTE nG2 = GetGValue( dwTemp );
	BYTE nB2 = GetBValue( dwTemp );

	printf( "R:%d, G:%d, B:%d\n", nR1, nG1, nB1 );
	printf( "R:%d, G:%d, B:%d\n", nR2, nG2, nB2 );

	return 0;
}

int REF2R( COLORREF rgb )
{
	int nBitmaskRed = 0x0000ff;  //255
	int nRed = rgb & nBitmaskRed;

	return nRed;
}

int REF2G( COLORREF rgb )
{
	int nBitmaskGreen = 0x00ff00; //65280
	int nGreen = ( rgb & nBitmaskGreen ) >> 8;

	return nGreen;
}

int REF2B( COLORREF rgb )
{
	int nBitmaskBlue = 0xff0000;  //16711680
	int nBlue = ( rgb & nBitmaskBlue ) >> 16;

	return nBlue;
}



※결과


'C > 기타' 카테고리의 다른 글

[C언어] 콘솔 창에서 컬러 텍스트 출력  (0) 2013.11.28



※요약

프로젝트 속성이 UNICODE일때, TRACE에서 한글을 사용하면 

"_CrtDbgReport: String too long or IO Error" 라는 문구와 함께 에러가 발생할 수 있습니다.

이럴 때는 영어로 찍거나 아래와 같은 코드를 삽입해 주면 됩니다.


소스

⁄⁄헤더에 추가
#include <locale.h>

⁄⁄소스에 추가
#ifdef _DEBUG
  _tsetlocale(LC_ALL, _T("korean"));
#endif

※국가별 로케일 스트링

Primary language

Sublanguage

Language string

Chinese

Chinese

"chinese"

Chinese

Chinese (simplified)

"chinese-simplified" or "chs"

Chinese

Chinese (traditional)

"chinese-traditional" or "cht"

Czech

Czech

"csy" or "czech"

Danish

Danish

"dan" or "danish"

Dutch

Dutch (default)

"dutch" or "nld"

Dutch

Dutch (Belgium)

"belgian", "dutch-belgian", or "nlb"

English

English (default)

"english"

English

English (Australia)

"australian", "ena", or "english-aus"

English

English (Canada)

"canadian", "enc", or "english-can"

English

English (New Zealand)

"english-nz" or "enz"

English

English (United Kingdom)

"eng", "english-uk", or "uk"

English

English (United States)

"american", "american english", "american-english", "english-american", "english-us", "english-usa", "enu", "us", or "usa"

Finnish

Finnish

"fin" or "finnish"

French

French (default)

"fra" or "french"

French

French (Belgium)

"frb" or "french-belgian"

French

French (Canada)

"frc" or "french-canadian"

French

French (Switzerland)

"french-swiss" or "frs"

German

German (default)

"deu" or "german"

German

German (Austria)

"dea" or "german-austrian"

German

German (Switzerland)

"des", "german-swiss", or "swiss"

Greek

Greek

"ell" or "greek"

Hungarian

Hungarian

"hun" or "hungarian"

Icelandic

Icelandic

"icelandic" or "isl"

Italian

Italian (default)

"ita" or "italian"

Italian

Italian (Switzerland)

"italian-swiss" or "its"

Japanese

Japanese

"japanese" or "jpn"

Korean

Korean

"kor" or "korean"

Norwegian

Norwegian (default)

"norwegian"

Norwegian

Norwegian (Bokmal)

"nor" or "norwegian-bokmal"

Norwegian

Norwegian (Nynorsk)

"non" or "norwegian-nynorsk"

Polish

Polish

"plk" or "polish"

Portuguese

Portuguese (default)

"portuguese" or "ptg"

Portuguese

Portuguese (Brazil)

"portuguese-brazilian" or "ptb"

Russian

Russian (default)

"rus" or "russian"

Slovak

Slovak

"sky" or "slovak"

Spanish

Spanish (default)

"esp" or "spanish"

Spanish

Spanish (Mexico)

"esm" or "spanish-mexican"

Spanish

Spanish (Modern)

"esn" or "spanish-modern"

Swedish

Swedish

"sve" or "swedish"

Turkish

Turkish

"trk" or "turkish"

 

 

thumbs.db 파일의 용도는 XP이상의 윈도우에서 그림 파일이 들어 있는 폴더를 

미리 보기 또는 슬라이드 보기 등으로 할 때 더욱 빠르게 보여주기 위하여

윈도우에서 미리 보기 이미지를 미리 만들어 놓은 파일입니다.


thumbs.db를 삭제하는 이유는 저사양 피시에서는 오히려 성능이 감소하며,

고사양 피시에서는 굳이 필요없고 용량만 차지 하기 때문입니다.


-삭제 방법-

윈도우 탐색기 옵션에서 아래와 같이 설정 합니다.

아래와 같이 설정하는 이유는 "thumbs.db"파일이 숨김으로 되어 있을 경우 검색되지 않을 수도 있기 때문입니다.


설정 후, 윈도우 탐색기 검색을 이용해 "thumbs.db"를 검색하여 삭제해 줍니다.

삭제하였으면 다시 생기지 않게 아래에서 생성 방지 해주면 됩니다.



-생성 방지 방법-

실행 창에 "gpedit.msc"라고 입력합니다.


아래의 빨간 상자들을 따라 갑니다.


라디오 버튼 중 "사용"에 체크하고 확인을 눌러줍니다.



-반디집 옵션-

반디집에서는 아래 옵션과 같이 thumbs.db파일 제외 옵션이 있습니다.




설 끝나고 이사



'사진 > 일상' 카테고리의 다른 글

R7 끌고 운길산역 -> 춘천역 라이딩  (0) 2014.08.04
C++ 책들  (2) 2014.07.21
클래시 오브 클랜  (4) 2014.07.21
[700D] 설악산 신흥사 청동좌불상  (2) 2014.02.01
[700D] 오리  (2) 2014.01.31
[700D] 간월도 갈매기  (2) 2014.01.25
[700D] 등  (4) 2014.01.19


인터넷 상에 돌아다니는 소스나 남이 짠 소스 등을 보다보면 들여쓰기가 엉망이거나, 들여쓰기가 깨진 경우가 있습니다.

이럴 때 비주얼 스튜디오의 자동 들여쓰기 조정 기능을 이용하면 편리하게 들여쓰기 해줍니다.


게시판 등에 올라온 소스 코드는 아래와 같이 들여쓰기가 깨져 엉망인 경우가 많습니다.


자동으로 들여쓰기를 조정하고 싶은 영역만 드래그 하거나 

Ctrl+A로 전체 소스를 선택할 뒤 Alt+F8을 우르면 아래와 같이 자동으로 들여쓰기가 됩니다.



비주얼 스튜디오 2010 버전부터 추가된 기능입니다.

20%~400%의 사이즈로 변경할 수 있으며, 변경 방법은 크게 3가지가 있습니다.


방법1.

아래 캡쳐 사진에 보이는 빨간 사각형 영역 안의 콤보 박스를 마우스로 클릭하여 원하는 사이즈를 지정해 줍니다.


방법2.

숫자를 키보드로 직접 입력해 줍니다.


방법3.

"Ctrl + 휠", Ctrl키를 누른 상태에서 휠을 상/하로 돌려 사이즈를 조절하여 줍니다. 


결과 화면

130%로 확대한 화면 입니다.




설악산 신흥사에서 찍은 청동좌불상입니다.






'사진 > 일상' 카테고리의 다른 글

C++ 책들  (2) 2014.07.21
클래시 오브 클랜  (4) 2014.07.21
[700D] 이사  (4) 2014.02.04
[700D] 오리  (2) 2014.01.31
[700D] 간월도 갈매기  (2) 2014.01.25
[700D] 등  (4) 2014.01.19
[700D] 고북 한농원 꽃뜰 가든 일진 고양이  (2) 2014.01.02



태안 연꽃 축제




'사진 > 일상' 카테고리의 다른 글

클래시 오브 클랜  (4) 2014.07.21
[700D] 이사  (4) 2014.02.04
[700D] 설악산 신흥사 청동좌불상  (2) 2014.02.01
[700D] 간월도 갈매기  (2) 2014.01.25
[700D] 등  (4) 2014.01.19
[700D] 고북 한농원 꽃뜰 가든 일진 고양이  (2) 2014.01.02
[700D] 보름달  (0) 2013.12.29



SWIFT CODE는 쉽게 말해 은행 고유의 식별 코드로써, SWIFT-BIC, BIC code, SWIFT ID 또는 SWIFT code로 불리기도 합니다.

SWIFT code는 구글 애드센스의 "새 결제 방법" 중 "은행 계좌로 송금" 항목에 사용하거나 Qoo10에 판매자 등록을 할 때 사용하기도 합니다.


은행명

BANK NAME

SWIFT CODE

본점 주소

국민은행

KOOK MIN BANK

CZNBKRSE

9-1, NAMDAEMUNRO-2GA, JUNG-GU, SEOUL, KOREA

기업은행

INDUSTRIAL BANK OF KOREA

IBKOKRSE

50, EULJIRO-2GA, JUNG-GU, SEOUL, KOREA

농협

NATIONAL AGRICULTURAL COOPERATIVE FEDERATION

NACFKRSEXXX

75, CHUNGJEONGRO-1GA, JUNG-GU, SEOUL, KOREA

신한은행

SHIN HAN BANK

SHBKKRSE

120, TAEPYUNGRO-2GA, JUNG-GU, SEOUL, KOREA

외환은행

KOREA EXCHANGE BANK

KOEXKRSEXXX

181, EULJIRO-AGA, JUNG-GU, SEOUL, KOREA

우리은행

WOORI BANK

HVBKKRSEXXX

203, HEOHYUNDONG-1GA, JUNG-GU, SEOUL, KOREA

하나은행

HANA BANK

HNBNKRSE

101-1, EULJIRO-1GA, JUNG-GU, SEOUL, KOREA

한국씨티은행

CITIBANK KOREA

CITIKRSX

39, DADONG, JUNG-GU, SEOUL, KOREA

우체국

KOREA POST OFFICE

SHBKKRSEKPO

21-1, CHUNGMURO 1-GA, JUNG-GU, SEOUL, KOREA

SC제일은행

STANDARD CHARTERED FIRST BANK KOREA

SCBLKRSE

100 GONGPYUNG-DONG, CHONGNO-GU, SEOUL, KOREA

부산은행

BUSAN BANK

PUSBKR2P

830-38, BEOMOL-2DONG, DONG-GU, BUSAN, KOREA

대구은행

DAEGU BANK

DAEBKR22

118, SUSUNGDONG-2GA, SUSUNG-GU, DAEGU, KOREA

경남은행

KYONGNAM BANK

KYNAKR22XXX

246-1, SUKJEON-DONG, MASANHOEWON-GU, CHANGWON-SI, KYUNGSANGNAM-DO, KOREA

광주은행

THE KWANGJU BANK, LTD.

KWABKRSE

7-12, DAEIN-DONG, DONG-GU, KWANGJU, KOREA

+ Recent posts