| r256 vs r257 | ||
|---|---|---|
| ... | ... | |
| 5057 | 5057 | }}}}}} |
| 5058 | 5058 | |
| 5059 | 5059 | ##rs 매기기 |
| 5060 | 앞에 매겼던 ac와 bc로 판별식을 만듭니다. i=ac-bc로 둡니다. a의 가장 큰 자리와 b의 가장 큰 자리가 얼마나 차이나는가에 따라 몫에 매기는 소수점 위치가 달라집니다. i>=-35 (ac==-18이고 bc==17일 경우), i<=35 (ac==17이고 bc=-18일 경우)입니다. | |
| 5060 | 5061 | |
| 5062 | i가 18 이상 (18 이상 35 이하)이면 rs를 매길 수 있습니다. 몫을 적어놓은 문자열 tm의 0번 index에 들어가는 문자부터 i에서 18을 뺀 값의 index에 들어가는 문자까지를 rs로 두며, rs의 문자열 길이는 i-18+1 곧 i-17입니다. | |
| 5063 | {{{#!if i=ac-bc, i>=18 | |
| 5064 | tm에서 rs를 오려낸 문자열을 tm으로 다시 둡니다. | |
| 5065 | {{{#!if rs=tm.substr(0,i-17), tm=tm.substr(i-17) | |
| 5066 | }}} | |
| 5067 | rs에 순 0만을 매겼을 가능성이 있으므로 rs를 정수로 바꿉니다. | |
| 5068 | {{{#!if rs=+rs | |
| 5069 | }}}}}} | |
| 5061 | 5070 | ##ru 매기기 |
| 5071 | i>=18 이 되(어 rs를 매기)는 경우 i에 18을 뺍니다. | |
| 5072 | {{{#!if i>=18 | |
| 5073 | {{{#!if i-=18 | |
| 5074 | }}}}}} | |
| 5075 | i가 0 이상 (0 이상 17 이하)이면 ru를 매길 수 있으며 문자열의 길이는 i+1이 됩니다. | |
| 5076 | {{{#!if i>=0 | |
| 5077 | {{{#!if ru=tm.substr(0,i+1), tm=tm.substr(i+1), ru=+ru | |
| 5078 | }}}}}} | |
| 5062 | 5079 | |
| 5063 | 5080 | ##rb 매기기 |
| 5081 | i>=0일 경우 i에 18을 뺍니다. i가 -18 이상 (-18 이상 -1 이하)이면 rb를 매길 수 있으며 문자열의 길이는 i+18+1 곧 i+19가 됩니다. | |
| 5082 | {{{#!if i>=0 | |
| 5083 | {{{#!if i-=18 | |
| 5084 | }}}}}}{{{#!if i>=-18 | |
| 5085 | {{{#!if rb=tm.substr(0,i+19), tm=tm.substr(i+19), rb=+rb | |
| 5086 | }}}}}} | |
| 5064 | 5087 | |
| 5065 | 5088 | ##ri 매기기 |
| 5089 | {{{#!if i>=-18 | |
| 5090 | {{{#!if i-=18 | |
| 5091 | }}}}}}{{{#!if i>=-36 | |
| 5092 | {{{#!if ri=tm.substr(0,i+37), tm=tm.substr(i+37), ri=+ri | |
| 5093 | }}}}}} | |
| 5066 | 5094 | |
| 5095 | ||
| 5096 | ||
| 5067 | 5097 | 여기까지가 나눗셈의 계산과정입니다. |
| 5068 | 5098 | }}} |
| 5069 | 5099 | |
| ... | ... |