Checksum program in java
On-campus and online computer science courses to Learn the basic concepts of Computer Science.This tutorial will cover c ,c++, java, data structure and algorithm,computer graphics,microprocessor,analysis of algorithms,Digital Logic Design and Analysis,computer architecture,computer networks,operating system.
code in Java:import java.io.*;
public class Checksum {
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Please enter the Hex Dump:");
String ip = br.readLine();
String word1 = Integer.toBinaryString(Integer.parseInt(ip.substring(0,4),16));
word1 = setLength(word1,16);
for(int i = 4; i < ip.length(); i=i+4)
{
String word2 = Integer.toBinaryString(Integer.parseInt(ip.substring(i,i+4),16));
word2 = setLength(word2,16);
word1 = add(word1,word2);
}
System.out.println("The Checksum is: " + not(word1));
}
static String add(String word1,String word2)
{
String result = "";
char carry = '0';
for(int i = (word1.length() - 1); i >= 0; i--)
{
if(word1.charAt(i) == '0' && word2.charAt(i) == '0' && carry == '0')
{
result = "0" + result;
carry = '0';
}
else if(word1.charAt(i) == '0' && word2.charAt(i) == '0' && carry == '1')
{
result = "1" + result;
carry = '0';
}
else if(word1.charAt(i) == '0' && word2.charAt(i) == '1' && carry == '0')
{
result = "1" + result;
carry = '0';
}
else if(word1.charAt(i) == '0' && word2.charAt(i) == '1' && carry == '1')
{
result = "0" + result;
carry = '1';
}
else if(word1.charAt(i) == '1' && word2.charAt(i) == '0' && carry == '0')
{
result = "1" + result;
carry = '0';
}
else if(word1.charAt(i) == '1' && word2.charAt(i) == '0' && carry == '1')
{
result = "0" + result;
carry = '1';
}
else if(word1.charAt(i) == '1' && word2.charAt(i) == '1' && carry == '0')
{
result = "0" + result;
carry = '1';
}
else if(word1.charAt(i) == '1' && word2.charAt(i) == '1' && carry == '1')
{
result = "1" + result;
carry = '1';
}
}
if(carry == '1')
{
result = add(result,setLength(String.valueOf(carry),16));
}
return result;
}
static String setLength(String word,int n)
{
while(word.length() < n)
word = "0" + word;
return word;
}
static String not(String word)
{
String result = "";
for(int i = 0; i < word.length(); i++)
{
if(word.charAt(i) == '0')
result += "1";
else
result += "0";
}
return result;
}
}
output:-Please enter the Hex Dump: 45120731297186301946 The Checksum is: 1110101011010100 --------------------------------

0 comments: