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