sandeshMC

Subtraction Using Twos Complement method

Feb 19th, 2014
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.40 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3.  
  4. public class Subtraction {
  5.     int flag = 0;
  6.    
  7.     StringBuffer add(StringBuffer s1,StringBuffer s2) {
  8.          StringBuffer s3=new StringBuffer();
  9.          System.out.println("N1 IN BINARY IS :  "+s1+"\nN2 IN BINARY IS : "+s2);
  10.          s1=s1.reverse();
  11.          s2=s2.reverse();
  12.          int len=s1.length()>s2.length()?s1.length():s2.length();
  13.          while(s1.length()<(len)) {
  14.              s1.append("0");
  15.          }
  16.          while(s2.length()<(len)) {
  17.              s2.append("0");
  18.          }
  19.      for (int i = 0; i < s1.length(); i++) {
  20.              if (flag == 0) {
  21.                      if (s1.charAt(i) == '0' && s2.charAt(i) == '0')
  22.                              s3.append("0");
  23.                      if (s1.charAt(i) == '1' && s2.charAt(i) == '0')
  24.                              s3.append("1");
  25.                      if (s1.charAt(i) == '0' && s2.charAt(i) == '1')
  26.                              s3.append("1");
  27.                      if (s1.charAt(i) == '1' && s2.charAt(i) == '1') {
  28.                              flag = 1;
  29.                              s3.append("0");
  30.                      }
  31.  
  32.              } else {
  33.                      if (s1.charAt(i) == '0' && s2.charAt(i) == '0') {
  34.                              s3.append("1");
  35.                              flag = 0;
  36.                      }
  37.                      if (s1.charAt(i) == '1' && s2.charAt(i) == '0') {
  38.                              s3.append("0");
  39.                              flag = 1;
  40.                      }
  41.                      if (s1.charAt(i) == '0' && s2.charAt(i) == '1') {
  42.                              s3.append("0");
  43.                              flag = 1;
  44.                      }
  45.                      if (s1.charAt(i) == '1' && s2.charAt(i) == '1') {
  46.                              flag = 1;
  47.                              s3.append("1");
  48.                      }
  49.              }
  50.      }
  51.  
  52.  
  53.      return s3;
  54.     }
  55.     public static void main(String[] args) {
  56.         Scanner sc=new Scanner(System.in);
  57.         Subtraction sub=new Subtraction();
  58.         System.out.println("Enter the two numbers : ");
  59.         int a=sc.nextInt();
  60.         int b=sc.nextInt();
  61.         int bothNegative=0;
  62.         if(a<0&&b<0)
  63.             bothNegative=1;
  64.         StringBuffer s1=new StringBuffer(Integer.toBinaryString(a));
  65.         StringBuffer s2=new StringBuffer(Integer.toBinaryString(b));
  66.         StringBuffer s3=sub.add(s1, s2);
  67.         String s4=new String (s3.reverse());
  68.         long l = Long.parseLong(s4, 2);
  69.         int i=(int)l;
  70.         System.out.println("THE ANSWER IS : "+i);
  71.     }
  72.  
  73. }
Advertisement
Add Comment
Please, Sign In to add comment