Question: ***** HELP COMMENT THE CODE BELOW, NO NEED TO DO ANYTHING ELSE, THE QUESTION IS JUST FOR REFERENCE** 3) Assume you have a computer with
***** HELP COMMENT THE CODE BELOW, NO NEED TO DO ANYTHING ELSE, THE QUESTION IS JUST FOR REFERENCE** 3) Assume you have a computer with 32 gigs of RAM, each 4 gigs in a different memory chip, therefore you have 8 (eight) 4 gigs RAM chips. ---------- decimal address ---------- GIGs RAM chip 0 contain addresses: 0 - 34,359,738,368 bits = 4 RAM chip 1 contain addresses: 34,359,738,369 - 68,719,476,738 bits = 8 RAM chip 2 contain addresses: 68,719,476,739 - 103,079,215,108 bits = 12 RAM chip 3 contain addresses:103,079,215,109 - 137,438,953,478 bits = 16 RAM chip 4 contain addresses:137,438,953,479 - 171,798,691,848 bits = 20 RAM chip 5 contain addresses:171,798,691,849 - 206,158,430,218 bits = 24 RAM chip 6 contain addresses:206,158,430,219 - 240,518,168,588 bits = 28 RAM chip 7 contain addresses:240,518,168,589 - 274,877,906,958 bits = 32 I used this link to do the calculations: http://www.matisse.net/bitcalc/?input_amount=274%2C877%2C906%2C958&input_units=bitsation=legacy 4) In the same folder (pgm2), in terminal mode, using any linux editor, create a Java program named: your lastName, First letter of your first name, _OS, pgm2, java example: robinsonM_OSpgm2.java This program will do the following: 5) Open the text file ( named on question 2 above ) 6) Read each record, which is the location of an error in RAM, in hex 7) Convert that hex value to binary 8) Convert the binary value to decimal value 9) Print the RAM chip number where the error is located for each record as follows: Error Found at hex number = binary number = decimal number = chip number hex number = binary number = decimal number = chip number hex number = binary number = decimal number = chip number hex number = binary number = decimal number = chip number hex number = binary number = decimal number = chip number hex number = binary number = decimal number = chip number hex number = binary number = decimal number = chip number hex number = binary number = decimal number = chip number
******************************************************************************* public static void main(String args[]) throws Exception { java.io.FileReader reader = new java.io.FileReader("RAMerrors8x4c.txt"); java.io.BufferedReader input = new java.io.BufferedReader(reader); String address; long dec; short ramChip = -1; while ((address = input.readLine()) != null) { dec = convertToDecimal(address); ramChip = findChipNumber(dec); if (ramChip == -1) { System.out.println("Hexadecimal: " + address + " Decimal: " + dec + " RAM Chip: Address not in RAM"); System.out.println("A 4 gigs RAM has upper limit of 34,359,738,368 bits"); } else { System.out.println("Hexadecimal: " + address + " Decimal: " + dec + " RAM Chip: " + ramChip); } } static long convertToDecimal(String hex) { long dec = 0; int i, power; for (i = hex.length() - 1, power = 0; i >= 0; i--, power++) { char c = hex.charAt(i); switch (c) { case '0': dec += 0 * Math.pow(16, power); break; case '1': dec += 1 * Math.pow(16, power); break; case '2': dec += 2 * Math.pow(16, power); break; case '3': dec += 3 * Math.pow(16, power); break; case '4': dec += 4 * Math.pow(16, power); break; case '5': dec += 5 * Math.pow(16, power); break; case '6': dec += 6 * Math.pow(16, power); break; case '7': dec += 7 * Math.pow(16, power); break; case '8': dec += 8 * Math.pow(16, power); break; case '9': dec += 9 * Math.pow(16, power); break; case 'A': dec += 10 * Math.pow(16, power); break; case 'B': dec += 11 * Math.pow(16, power); break; case 'C': dec += 12 * Math.pow(16, power); break; case 'D': dec += 13 * Math.pow(16, power); break; case 'E': dec += 14 * Math.pow(16, power); break; case 'F': dec += 15 * Math.pow(16, power); break; } } return dec; } /* *RAM chip 0 contain addresses: 0 - 34,359,738,368 bits = 4 RAM chip 1 contain addresses: 34,359,738,369 - 68,719,476,738 bits = 8 RAM chip 2 contain addresses: 68,719,476,738 - 103,079,215,108 bits = 12 RAM chip 3 contain addresses:103,079,215,109 - 137,438,953,478 bits = 16 RAM chip 4 contain addresses:137,438,953,479 - 171,798,691,848 bits = 20 RAM chip 5 contain addresses:171,798,691,849 - 206,158,430,218 bits = 24 RAM chip 6 contain addresses:206,158,430,219 - 240,518,168,588 bits = 28 RAM chip 7 contain addresses:240,518,168,589 - 274,877,906,958 bits = 32 */ static short findChipNumber(long dec) { if (dec >= 0 && dec <= 34359738368l) { return 0; } if (dec >= 34359738369l && dec <= 68719476738l) { return 1; } if (dec >= 68719476738l && dec <= 103079215108l) { return 2; } if (dec >= 103079215109l && dec <= 137438953478l) { return 3; } if (dec >= 137438953479l && dec <= 171798691848l) { return 4; } if (dec >= 171798691849l && dec <= 206158430218l) { return 5; } if (dec >= 206158430219l && dec <= 240518168588l) { return 6; } if (dec >= 240518168589l && dec <= 274877906958l) { return 7; } return -1; } } Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
