홈 > 유머 > 유머
유머

Best Comment

BEST 1 zkzk  
[@라테스형] 흠 첨언하자면 unsigned long long은 0과 1이 64개로 이루어져있습니다.
0000000000000000000000000000000000000000000000000000000000000000에서
1111111111111111111111111111111111111111111111111111111111111111까지
여기서 2진수로 뺄셈을 할 때 컴퓨터는 뺄셈을 덧셈으로 하려함. 음수를 표현 할 때는 마이너스 뒤의 수를 전부 보수화하여 1을 더함
즉 저 -1은 1이 63개 0이 하나인 수로 바뀌고 거기에 1을 더해서 보수화가 이루어져 1이 64개인 숫자가됨. 이 숫자는 일반 longlong에서는 음수겠지만 이러한 음수영역까지 양수로 표현토록한게 unsigned long long이라서 저 1 64개짜리 수는 표현 가능한 최대의 수 2의 64제곱-1이 됨
쓰고나니 내 설명이 더 어려운듯 ㄷ
BEST 2 흑백논리즐  
[@라테스형] 디지털은 비트들의 조합이라 캐리 비트 뭐시기 이런거 다재끼고 걍 쉽게 말해서
unsigned 는 음수가 없습니다

따라서 컴퓨터에서 0에다가 빼기하면 한바퀴를돌아
표현할수있는 최대값이 출력되요

간단한 예시로

윈도우 계산기를 보기를 선택

프로그래머용 변환

 0에다가  -1 하고 16진수바꾸면

ffffffffff가나옵니다(단 다시 십진수로바꾸면 윈도우계산기는 음수가있으니 -1이 나옵니다)
16 Comments
흑백논리즐 2021.04.10 12:18  
이걸 이해하는 내가싫다...ㅜㅜ

럭키포인트 14,880 개이득

라테스형 2021.04.10 12:36  
[@흑백논리즐] 설명좀..

럭키포인트 11,192 개이득

흑백논리즐 2021.04.10 13:12  
[@라테스형] 디지털은 비트들의 조합이라 캐리 비트 뭐시기 이런거 다재끼고 걍 쉽게 말해서
unsigned 는 음수가 없습니다

따라서 컴퓨터에서 0에다가 빼기하면 한바퀴를돌아
표현할수있는 최대값이 출력되요

간단한 예시로

윈도우 계산기를 보기를 선택

프로그래머용 변환

 0에다가  -1 하고 16진수바꾸면

ffffffffff가나옵니다(단 다시 십진수로바꾸면 윈도우계산기는 음수가있으니 -1이 나옵니다)
라테스형 2021.04.10 13:27  
[@흑백논리즐] 이해가 잘 안되긴 하는데 마지막소원을 마이너스1하면 무한대가 된다는건가요?
zkzk 2021.04.10 14:07  
[@라테스형] 흠 첨언하자면 unsigned long long은 0과 1이 64개로 이루어져있습니다.
0000000000000000000000000000000000000000000000000000000000000000에서
1111111111111111111111111111111111111111111111111111111111111111까지
여기서 2진수로 뺄셈을 할 때 컴퓨터는 뺄셈을 덧셈으로 하려함. 음수를 표현 할 때는 마이너스 뒤의 수를 전부 보수화하여 1을 더함
즉 저 -1은 1이 63개 0이 하나인 수로 바뀌고 거기에 1을 더해서 보수화가 이루어져 1이 64개인 숫자가됨. 이 숫자는 일반 longlong에서는 음수겠지만 이러한 음수영역까지 양수로 표현토록한게 unsigned long long이라서 저 1 64개짜리 수는 표현 가능한 최대의 수 2의 64제곱-1이 됨
쓰고나니 내 설명이 더 어려운듯 ㄷ
라테스형 2021.04.10 14:47  
[@zkzk] 감사해요!
흑백논리즐 2021.04.10 14:13  
[@라테스형] 넹 unsigned는 음수가없어서 양수의 표현할수있는 최대값으로 바껴요

예시 1
unsigned char      0~255
    signed char -128~127

예시 2
unsigned short          0~65535
    signed short -32768~32767


예시 1의 unsigned char계산
0-1 =255
0-2 =254
....
예시2의 계산
0-1 =65535
0-2 =65534

표현할수있는 최대값을 유의하세요(long long은 진짜 음층큰 수를 표현할때 씁니다)

왜 이케하는가 하면 컴퓨터의 계산능력 극대화를 위해
계산 혹은 프로그램시 결과값이 굳이 작은데 큰표현범위를 사용할 필요가 없기때문입니다
라테스형 2021.04.10 14:48  
[@흑백논리즐] 감사합니다!
후에에엥 2021.04.10 12:45  
[@흑백논리즐] 설명좀..

럭키포인트 18,852 개이득

흑백논리즐 2021.04.10 13:12  
[@후에에엥] 위에씀
설화가인 2021.04.10 12:48  
늘려달라는 말은 못하게 아니까
1. 소원을 빈다 남은 갯수가 줄어든다
2. 소원을 빌때 3,2,1 끝이 아니고 1,2,3 끝 이걸로 바꿔달라고한다
3. 3번째 소원으로 1,2,를 하고 늘어나는 갯수를 줄여달래고한대 = 결과적으로 소원이 늘어나는 효과다
4. 소원 늘려달라고한건 아니고 줄여달라고했으니 반칙아니다 인듯

럭키포인트 12,944 개이득

zkzk 2021.04.10 12:53  
세번째 소원에서 소원으로 쓴 갯수를 줄이는 것이 실행되고 나면 어짜피 저 사람의 소원은 남은게 없으니 빼지도 않는거 아닌가

럭키포인트 8,088 개이득

히하 2021.04.10 13:52  
[@zkzk] 3번째 소원을 비는 시점에서 이제 남은 소원은 0이고 남은 소원의 갯수에서 1줄이라니까 -1이 되어야 하는데 부호 없으니
풀로 차버림

럭키포인트 15,714 개이득

zkzk 2021.04.10 14:51  
[@히하] 자신의 남은 소원이라는 시점에 따라서 다를거고
가장 먼저 생각나는 방법은 그냥 소원자체를 없애면 소원을 들어준게 되어서 이도저도 아닌거아님?
결과론적으로 저 사람의 소원은 모두 이루어졌고
히하 2021.04.10 15:16  
[@zkzk] 소원자체를 없애면 소원을 들어준게 아니지 ㅋㅋㅋ
3번째 소원을 들어줘야 소원이 없어지는건데
그냥 지 맘대로 소원 없앨 수 있었으면 처음부터 아예 소원 안 들어줬을거고
1번째 소원이 소원은 전부 각자 독립적으로 해야한다고 했음
니 말대로 그냥 소원 자체를 없애는거부터 1번째 소원에 위반되기 때문에
안됨
1번째 소원으로 각자 독립적인 소원이 되었기 때문에
3번째 소원이 성립하려면 우선 소원을 들어줘야하고 그 소원을 들어주려고 횟수를 썼기에
다른 소원을 못 쓰는 0개가 이미 된 상태에서 소원은 0개를 줄여달라고 한거임
zkzk 2021.04.10 13:03  
누가 답을 달았을줄 알았난데 없네 잘 모르는 사람이 해석하기에는 저 unsigned long long타입의 변수는 0~18,446,744,073,709,551,615까지 나타낼 수 있는데 unsigned에서 0-1을 하면 나타낼 수 있는 최대값이 됩니다. 그걸 이용해서 마지막 소원으로 1을 줄이는걸 0에서 1을 빼는 것으로 이용해서 무한히 많은 소원을 빌겠다는거 같음
제목