오버플로 때문입니까? 하지만 Math.random()은 숫자가 1보다 작 으면 결과가 0xFFFFFFFF보다 작아야합니다.왜 (int) (Math.random() * 0xFFFFFFFF)가 0입니까
답변
0xFFFFFFFF
은 -1
입니다. 따라서 에 0.0
과 1.0
사이의 값 (은 포함되지 않음)을 곱합니다 (java 문서의 Math.random()
에 따라). 곱셈은 -1.0
(포함하지 않음)과 0.0
사이의 값이됩니다. int
으로 변환하면 십진수 값이 없어져 0
이됩니다.
Math.Random은 0.0에서> 1.0 사이의 형식으로 double을 반환합니다. 당신이 int로 있음을 캐스팅한다면, 당신은 할 것이다 0 0 * 수 = 당신은 -1
와보다 작은 1
숫자를 곱한하는 0
캐스트 이전에 곱셈이 발생했습니다. 피승수가 잘못되었습니다. '0'과'100' 사이의 임의의 숫자를 얻으려면'(int) (Math.random() * 100)'이라고 쓰면 ** '0'이되지 않습니다. – jlordo
0xFFFFFFFF = -1
Math.random() takes a value from [0, 1] interval
. 결과는 매우 같은 숫자이지만 음수 부호가 붙습니다. int
으로 전송하면 소수 부분은 무시되고 0
으로 남게됩니다.
0xFFFFFFFF
의 2의 보수는 -1
십진수입니다. 0
과 1
사이의 숫자를 반환합니다. 이제 0.5
이라고 가정합니다. 그렇다면 :
(int) (0.5 * -1)
이것은 으로 변환 할 때 인 (int)(-0.5)
입니다. 당신이 가장 큰 양수를 사용하고자하는 가정
, 이것을 사용 :
(int) (Math.random() * 0x7FFFFFFF)
^
또는
(int) (Math.random() * Integer.MAX_VALUE)
정답입니다. –
수백만의 감사! 0x7FFFFFFF만큼 좋은 점은 signed int의 최대 값입니다. – Zoe
- 1. 왜 (+ + '') === 0입니까?
- 2. xspeed가 왜 0입니까?
- 3. 이 인쇄가 왜 0입니까?
- 4. 왜 항상 출력이 0입니까?
- 5. 왜 합계가 0입니까?
- 6. 왜 위도와 경도가 0입니까?
- 7. 왜 FrameLayout의 높이가 0입니까?
- 8. 자바에서 (int) (Math.random())과 Math.random()의 차이점은 무엇입니까?
- 9. 왜 FLT_MIN이 0입니까?
- 10. 왜 $ # ARGV가 0입니까?
- 11. 왜 VisualTreeHelper.GetChildrenCount (lbi) == 0입니까?
- 12. 왜 'abc'.indexOf ([]) === 0입니까?
- 13. PDFsharp/MigraDoc - 왜 section.PageSetup.PageWidth = 0입니까?
- 14. 이 코드의 결과는 왜 0입니까?
- 15. 왜 retainCount가 1 대신 0입니까?
- 16. 왜 내 사각형의 높이가 0입니까?
- 17. 왜 15.5 mod 5 = 0입니까?
- 18. 왜 페이팔 통합에서 금액이 0입니까?
- 19. 왜 GetExtendedTcpTable에서 연결 상태가 0입니까?
- 20. 균일 int [8] 영역의 내용은 항상 0입니까?
- 21. 왜 x와 y는 항상 float로 0입니까?
- 22. 왜 int/int = int인가?
- 23. Android Opencv 왜 HOG 기술자가 항상 0입니까?
- 24. IL의 루프 - 왜 stloc.0과 ldloc.0입니까?
- 25. MySQL 타임 스탬프 - 왜 모두 0입니까?
- 26. 왜 (0x7FFFFFFF >> 31) +1이 0입니까?
- 27. ArcObjects : 왜 내 StandaloneTableCount가 0입니까? (IStandaloneTableCollection)
- 28. 변수를 사용하지 않으면 왜 1/10이 0입니까?
- 29. 왜 응답 결과가 0입니까, Google은 v3을 매핑합니까?
- 30. 자기가 포함되어있는 경우 왜 eax가 0입니까?
당신이 코드를 제공시겠습니까 더 나은를? – Multithreader
무엇이'0xFFFFFFFF'인지 생각하거나, 아래의 나의 대답을 읽으십시오. – jlordo