Sunday, December 13, 2015

Visual C++ 11자리 정수형 유니크 ID 만들기

정수형으로 유저ID로 사용할 유니크ID를 만들어 보았다.
32비트 UINT_MAX는 0xFFFFFFFF로 4,294,967,295가되며 약 42억9천만이 된다.
그리고 rand()를 사용하면 리턴값은 int지만 사실상 short인 SHRT_MAT 32767이 최대값이다.
따라서 다음과 같이 만들면 long형인 11자리 값을 만들수가 있다.

srand(time(NULL));
unsigned hirand = rand() << 16;
unsigned lorand = rand();

//앞에 1또는 다른 값을 붙여 써도 됨
printf("1%010u\n", hirand | lorand);

No comments:

Post a Comment