정수가 필요하고 프로세서에 떠있는 이유는 무엇입니까? 감사합니다.부동 및 정수 ....?
답변
이들은 모두 숫자 일 뿐이므로 구분할 필요가 없을 것입니다. 그러나 정수 연산을 할 때 최적화가 가능합니다. CPU 명령어로 더하기, 빼기, 곱하기 및 나눗셈이 가능합니다. 마찬가지로 부동 소수점 숫자에 대해 유사한 연산을하는 명령어가 있지만 머신에서 숫자가 다르게 표현되고 연산이 다르기 때문에 정수와 부동 소수점 사이의 구분을 거품으로 처리하는 것이 좋습니다. 프로그래밍 언어 그 자체.
C#, Java, C++ 및 기타 언어에는 모두 정수 대 부동 소수점을 처리하는 고유 한 유형이 있습니다. Javascript는 반대의 선택을합니다. 특별한 정수 타입은 없으며, 실수가 아니라면 모든 숫자는 실수입니다. 극단 (예를 들어, 천문학적 인 양)에서 정밀도가 떨어진다하더라도 수레는 값의 훨씬 넓은 범위를 허용 - 당신의 int를 필요 수레 이유에 관해서는
. 부동 소수점 연산에서 정확하게 1.37999933247474x10e24를 나타낼 수 없습니다. 반면 int는 고정 된 숫자 집합에 대해 정밀도와 속도를 제공합니다.
정수는 프로세서 리소스에서 더 쉽고 때로는 더 빠릅니다. 수년 전 프로세서에 내장 된 부동 소수점 기능이 제공되지 않았을 때 큰 문제였습니다. 그리 많지는 않지만 타당한 코드에서는 여전히 차이가있을 수 있습니다.
정수가 모두 필요한 경우가 많습니다.
부동 소수점 값의 범위는 정수보다 큽니다. 또한 분수 값을 나타낼 수도 있습니다. 그러나 이러한 기능은 정밀도가 떨어지는 대신 제공됩니다.
편집 :
정수 연산 (I 정밀의 손실에 의해 무엇을 의미하는) 하나는 오버 플로우 또는 0으로 분열의 원인이 피연산자를 제공하지 않습니다 너무 오래, 항상 정확한입니다.
이것은 부동 소수점 산술 연산과 관련이 없으므로 간단한 연산에서 이러한 값을 사용할 때 값의 일부분이 손실 될 수 있습니다. 그 이유는 부동 소수점 값에 의해 제공되는 엄청난 범위는 [비교적] 작은 저장 공간 (일반적으로 8 또는 16 바이트)이 주어지면 범위 내의 모든 연속 값을 표현할 수 없기 때문입니다.
항상 그렇지는 않습니다. 64 비트 double은 32 비트 int보다 더 정밀합니다. –
@ 마크 랜섬. 가변 크기에 관계없이 정수는 항상 _ 범위 내에 100 % 정확합니다. 이는 범위 내에서 부동 소수점 값과 달리 값이 다양하고 단순한 계산에 사용될 때 손실되는 부분을 포함 할 수 있습니다. – mjv
정수에 동일한 정밀도를 보장하는 가장 큰 부동 소수점 값을 나타내는 상수를 생성하는 것이 쉽습니다. 부동 소수점은 종종 더 큰 보장을 제공합니다. 정수로 2147483647 x 2147483647을 곱하면 어떻게됩니까? 복식? –
정수는 계산을위한 것이며 부동 소수점 숫자는 계산을위한 것입니다. 우리는 수학과 수학 모두에서 그것을 가지고 있습니다. 그래서 우리는 그것들을 알고리즘과 프로그램에서도 필요로합니다. 이야기의 끝.
대부분의 fp 번호 구현 범위는 대부분의 정수 구현 범위보다 크지 만 내일 512 비트 정수를 허용하지만 16 비트 부동 소수점 숫자 (1 부호 비트 , 3 개의 지수 비트, 12 개의 유효 비트). 정수는 여전히 나눗셈에 의해 닫히지 않으며 부동 소수점 숫자는 여전히 카운트에 사용되지 않습니다. 왜냐하면 fp 숫자에 후속 함수가 있지만 실제 숫자가 없기 때문에 fp 숫자가 실수.
프로세서에서 정수가 더 쉽지는 않지만 프로세서는 비트에 대한 기본적인 부울 논리 연산을 수행합니다. 그리고 프로세서 X1이 정수 연산보다 fp 연산보다 빠르다면 메모리 뱅크를 통한 트롤은 카운터 예제를 발견 할 것입니다.
분수에는 fp 숫자가 필요하지 않습니다. 우리는 분자 쌍을 사용하여 분자와 분모를 나타낼 수 있습니다.
정수의 절대적인 정밀도가 계산에 사용되는 이유입니다. 모든 실제적인 목적을 위해 기존의 FP 구현의 정밀도 (현재, 의견 차이를 유치하기 위해 야생 주장이있다!)
감사
마크
FP 번호는 실수가 아닙니다. OP 또는 아이디어를주는 사람은 보내지 마십시오. FP 번호는 나누기가 끝나지 않습니다. 무한대는 부동 소수이지만 실제 또는 int는 아닙니다. – Potatoswatter
부동 소수점은 절대적으로 나누기에서 닫힙니다. 두 개의 부동 소수점 값을 나눌 때 또 다른 부동 소수점 값을 얻습니다. 항상. 실수 일 경우 얻을 수있는 결과와 정확히 같지 않을 수도 있습니다. 그러나 이는 닫힌 것이 아닙니다. 부동 소수점 값의 나눗셈은이 반올림을 포함하도록 * 정의 *되어 있습니다. –
아, 여기에 미묘한 용어 문제가 있다고 생각합니다. Potatoswatter는 "FP 넘버"를, Stephen은 "부동 소수점 값"이라고 말했다. NaN은 어떻습니까? 부동 소수점 변수가 보유 할 수있는 값이지만 자체 승인으로는 숫자가 아닙니다. 부동 소수 * 숫자는 나누기에서 닫히지 않지만 부동 소수점 변수의 * 값 *은 나누기에서 닫힙니다. 맞습니까? – Ken
정수가 프로그래밍 작업에 사용하는 가장 일반적인 것들 충분하다. 그것들은 메모리 주소를 나타낼 수 있습니다. 하나의 정수에서 다음 정수로 계산하는 것이 쉽습니다. 하나만 추가하십시오.
실수를 근사하기 위해 부동 소수점 값이 사용됩니다. 실수는 연속 수학에서 가장 일반적인 종류입니다. 연속 수학은 실제 세계를 표현하는 데 사용됩니다. (따라서 "실제 숫자"용어)
일반적으로 부동 소수점 값은 정수로 사용할 수 없습니다. X에서 X보다 큰 다음 숫자로는 쉽게 셀 수 없습니다. 따라서 반올림되며 X + 1이 X와 다른 수임을 보장 할 수 없습니다. 일반적으로 두 부동 소수점 숫자는 다를 수 있습니다 비록 표현이 동등하다고하더라도, 다른 연산 순서에 의해 만들어졌다.
부동 소수점 숫자는 실생활과 같이 예측할 수 없습니다. 정수는 컴퓨터처럼 효율적으로 정렬되어 있습니다.
부동 소수점 숫자는 완전히 예측할 수 있습니다. 귀하의 컴퓨터가 광고 1e-32에서 1e + 32까지 요청할 때 임의의 숫자를 반환하는 것과는 다릅니다. 그것은 간단하지 않고 캐주얼 사용자에게는 직관적이지 않습니다. 관련 구현 표준을 연구하고 필요한 경우 종이에 대한 세부 정보를 작성해야합니다. –
실생활의 특정 측면 역시 예측 가능하며 더 많은 분석을 통해 더 예측 가능 해집니다. 그것은 비유입니다. – Potatoswatter
대부분의 응용 프로그램에서는 부동 소수점 숫자를 어떤 정밀도로 표현해야하는지 값의 범위를 신중하게 정의하고 적절한 배율 인수를 곱하여 정수로 대체 할 수 있습니다. 그러나 이는 추가 개발 노력으로, 가능한 임베디드 플랫폼 (예 : 소형 마이크로 컨트롤러)에서 유용 할 뿐이며, 사용 가능한 시간에 부동 소수점 산술 계산을 수행 할 수 없습니다.
부동 소수점 숫자를 사용하면 사용 가능한 범위와 정밀도를 유지하는 동안 대부분의 시간 값에 대해 생각하지 않고 도망 갈 수 있습니다. 안타깝게도 이것은 매우 위험합니다. 안전 영역을 벗어날 때주의 할 수 없기 때문입니다.
조금 다른 perpective : 정수는 디지털 수량에 유용하지만 부동 소수는 아날로그 수량에 유용합니다. 예를 들어, 항구의 보트를보고 int를 사용하여 보트를 계산하고 수면을 나타내는 수레를 사용합니다.
- 1. PHP는 정수 및 부동 비교 불일치
- 2. 부동 소수점 대 정수 성능
- 3. 라이브러리없이 문자 배열에 문자열, 정수 및 부동 문자를 연결합니다.
- 4. Vala에 대한 큰 정수 및 임의/다중 정밀도 부동 소수점
- 5. 정수 값 및 부동 소수점 값의 저장 차이점
- 6. 부동 소수점 및 높이
- 7. 절대 위치 및 부동
- 8. C에서 배열 인덱스, 정수 여야합니까? 부동 소수점이 될 수 있습니까?
- 9. float << 정수 부분과 부동 부분의 정밀도를 설정하여 작업
- 10. 부동 소수점 바이트 스와핑이 정수 바이트 스와핑과 다른 이유는 무엇입니까?
- 11. 목록 및 정수 쿼리
- 12. 비트 및 정수 승격?
- 13. DWORD 및 부호없는 정수
- 14. 서식의 부동 레이블 및 div
- 15. jQuery 아코디언 및 CSS 부동
- 16. Internet Explorer : 오버플로 및 부동
- 17. 절대 위치 지정 및 부동
- 18. DIV 부동 및 사이징 문제
- 19. synchsafe 정수 인코딩 및 디코딩
- 20. 오른쪽 시프트 및 부호있는 정수
- 21. PHP 5.2.12 - 정수 및 문자열
- 22. elisp 벡터 및 문자/정수
- 23. SQLite - 선택 및 정수 유형
- 24. 정수 배열 읽기 및 인쇄하기
- 25. 정수 인수 분해 및 암호화
- 26. 정수 값을 가진 코코아 슬라이더
- 27. 정수 배열의 정수 수정
- 28. 부동 소수점 연산 피하기
- 29. 정수
- 30. 정수
숙제 같은 냄새가납니다. –
나는 이것이 실제로 좋은 질문이라고 생각한다. 당신이 충분히 오래 사업을 해왔다면, 당신은 당연시하는 것들을 가져 가야합니다. 가정에 잠시 질문하는 것이 좋습니다. –
나는이 질문을 upvoted. 그것은 숙제와 같은 냄새가 날지 모르지만 확실히 작은 토론의 폭풍을 일으켰습니다. 나는 참여한 모든 사람이 학생이라고 생각하지 않습니다. 나는 오늘 집에서 일하고 있지만 나는 그렇지 않다는 것을 안다. –