Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

A-level Computing/AQA/Problem Solving, Programming, Data Representation and Practical Exercise/Fundamentals of Programming/Modulo arithmetic

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

Fundamentals of Structured Programming Relational operators Modular arithmetic is all about finding the remainder from long division (MOD), and the total number of times that a number goes into a division (DIV). Let's take a look at a quick example of 10 divided by 7 (you might want to remind yourself about long division):  1 r 3 7)10 7 3 Hopefully that wasn't too hard. We now need to introduce some terminology, MOD and DIV: MOD = finds the remainder from long division i.e. 10 MOD 7 = 3 DIV = finds the number of divides in long division i.e. 10 DIV 7 = 1 Exercise: MOD and DIV Try these examples, working out the MOD and DIV of each: 7 / 2 MOD = 1 DIV = 3 17 / 5 MOD = 2 DIV = 3 8 / 2 MOD = 0 DIV = 4 6 / 9 MOD = 6 DIV = 0 (9 does not divide into 6 at all!) Now try these explicit calculations: 11 MOD 8 = 3 8 MOD 4 = 0 6 DIV 5 = 1 600 DIV 20 = 30 Hopefully you are now pretty good with MOD and DIV, but what exactly is the point of all this? A very common example in past exam paper has been using the MOD and DIV to work out a binary equivalent of a denary number. Note that Visual Basic does not have a DIV function and uses A\B instead Example: Converting Denary to Binary using DIV sub convertDtoB(byVal base10 as integer) dim base2(7) as integer 'create an array to store the binary dim temp as integer = base10 for i = 7 to 0 step -1 'loop through each binary bit starting from the biggest value base2(i) = temp \ (2^i) 'temp DIV 2^i temp = temp MOD 2^i next console.write(base10 & " in binary = ") for i = 7 to 0 step -1 'loop through each binary bit starting from the biggest value console.write(base2(i)) next end sub Try the code out and see if it works. Try to write a trace table and see how it works for the number 67 (again another popular question in exams): base10 temp 2^i i base2 0 1 2 3 4 5 6 7 67 67 128 7 0 3 64 6 1 32 5 0 16 4 0 8 3 0 4 2 0 1 2 1 1 0 1 0 1 Output: 67 in binary = 01000011 Another common use is in finding out whether a number is odd or even using the MOD function. We know that MOD returns the remainder from a division sum. So for example 4 MOD 2 = 0, 5 MOD 2 = 1, 6 MOD 2 = 0 and so on. By modding something with 2 we can work out whether it is odd or not due to the return value. Example: Finding out if a number is Odd using MOD Dim testNum as Integer Dim temp as Integer console.writeline("please insert a number to test:") testNum = console.readline() If testNum MOD 2 = 0 Then Console.Writeline("The number is even") Else Console.Writeline("The number is odd") End If