unsigned long long int_to_bin(int k) {
if (k == 0) return 0;
if (k == 1) return 1;
return (k % 2) + 10 * int_to_bin(k / 2);
unsigned long long은 그냥 unsigned int로 나타낼 수 있다.
하지만 32-bit를 넘어가는 숫자를 표현하고 싶을 때는, 예를 들면
num = 592394
to binary = 1001 0000 1010 0000 1010
이와 같은 숫자(10010000101000001010)는 32-bit를 넘어가기 때문에 그냥 unsigned int로 하면 범위가 넘어가 이상한 숫자가 나올 수 있다.
unsigned int 범위: 0 ~ 4,294,967,295
그래서 나는 큰 num input을 받을 필요가 있었기에 unsigned long long을 사용했다.
그리고 unsigned long의 출력은 "%lu" 이다.
- %lu: unsigned long int 출력
- %ld: signed long int 출력
'Programming Language > C' 카테고리의 다른 글
Escaping - Difference '\0' and '\n' in the C programming language? (0) | 2020.12.04 |
---|