컴퓨터에서 0으로 나누면 어떻게됩니까?컴퓨터에서 0으로 나누면 어떻게됩니까?
주어진 프로그래밍 언어 (필자와 함께 작업 한 경우)에서 오류가 발생합니다. 하지만 왜? 이 언어로 제작 되었습니까? 금지되어 있습니까? 아니면 컴파일하고 오류가 반환되어야한다는 것을 하드웨어가 알아낼 것입니까?
하드 코드 인 경우에만 언어로 처리 할 수 있습니다. double z = 5.0/0.0;
과 같은 라인이 있습니다. 함수 호출이고, 외부에서 devisor가 주어지면, 언어는 이것이 0으로 나누는 것 (적어도 컴파일 타임)을 알지조차 모릅니다.
0.0
불려
double divideByZero(double divisor){
return 5.0/divisor;
}
.
업데이트 : 는 의견/답변에 따르면 그것은 당신이 int 0
또는 double 0.0
에 의해 분할 여부 차이가 있습니다. 나는 그 사실을 몰랐다. 이것은 그 자체로 흥미 롭습니다. 그리고 두 경우 모두에 관심이 있습니다.
또한 하나의 대답은 CPU에서 오류가 발생한다는 것입니다. 자, 어떻게이 일이 끝나나요? 또한 소프트웨어 (CPU에서 이해가되지 않는다) 또는 이것을 인식하는 회로가 있습니까? 나는 이것이 산술 논리 단위 (ALU)에서 일어난다 고 생각한다.
해석 된 언어 나 런타임이 다른 언어에서는 "언어"가 제수가 무엇인지 잘 알 수 있습니다. 컴파일 된 언어에서 이러한 체크는 바이너리로 컴파일 될 수 있습니다. "언어"가 알 수없는 유일한 시간은 그러한 검사없이 기계 코드로 직접 컴파일되는 경우입니다. – deceze