জাভাতে বাইনারি স্ট্রিং উপস্থাপনায় কোন int রূপান্তর করা?


168

জাভাতে কোনও বাইনারি স্ট্রিং উপস্থাপনায় কোনও int কে রূপান্তর করার সর্বোত্তম উপায় (আদর্শভাবে, সহজ) কী হবে?

উদাহরণস্বরূপ, int 156 বলুন this এর বাইনারি স্ট্রিং উপস্থাপনা হবে "10011100"।

উত্তর:


330
Integer.toBinaryString(int i)

এটি সুবিধাজনক! দীর্ঘস্থায়ী জন্য একই পদ্ধতি আছে?
টাইলার

46
@ টিট্রেট ৩১: আমি এটিকে চটজলদি শব্দ হিসাবে বোঝাতে চাইছি না, তবে আপনি যখনই প্রোগ্রামিং করছেন তখন সহজেই ডকুমেন্টেশনটি (এই ক্ষেত্রে জাভাক ডক) হাতে থাকা উচিত। আপনার জিজ্ঞাসা করা উচিত নয়: দীর্ঘস্থায়ী জন্য তাদের অনুরূপ পদ্ধতি কি; মন্তব্যটি টাইপ করার চেয়ে আপনার এটি সন্ধান করা উচিত।
লরেন্স ডল

5
@Jack একটি উপায় আছে মত, বিট একটি নির্দিষ্ট সংখ্যায় বাইনারি স্ট্রিং পেতে হয় দশমিক 8 8bit বাইনারি যা 00001000
Kasun Siyambalapitiya

38

এছাড়াও java.lang.Integer.toString (int i, int বেস) পদ্ধতি রয়েছে, যা যদি আপনার কোড একদিন 2 (বাইনারি) ব্যতীত অন্য কোনও দিন বেসগুলি পরিচালনা করতে পারে তবে এটি আরও উপযুক্ত হবে।



20

আরো way- ব্যবহারের এক java.lang.Integer আপনাকে প্রথমে যুক্তি স্ট্রিং উপস্থাপনা পেতে পারেন iradix (Octal - 8, Hex - 16, Binary - 2)দ্বিতীয় যুক্তি দ্বারা নির্দিষ্ট করা হয়েছে।

 Integer.toString(i, radix)

Example_

private void getStrtingRadix() {
        // TODO Auto-generated method stub
         /* returns the string representation of the 
          unsigned integer in concern radix*/
         System.out.println("Binary eqivalent of 100 = " + Integer.toString(100, 2));
         System.out.println("Octal eqivalent of 100 = " + Integer.toString(100, 8));
         System.out.println("Decimal eqivalent of 100 = " + Integer.toString(100, 10));
         System.out.println("Hexadecimal eqivalent of 100 = " + Integer.toString(100, 16));
    }

OutPut_

Binary eqivalent of 100 = 1100100
Octal eqivalent of 100 = 144
Decimal eqivalent of 100 = 100
Hexadecimal eqivalent of 100 = 64

5
public class Main  {

   public static String toBinary(int n, int l ) throws Exception {
       double pow =  Math.pow(2, l);
       StringBuilder binary = new StringBuilder();
        if ( pow < n ) {
            throw new Exception("The length must be big from number ");
        }
       int shift = l- 1;
       for (; shift >= 0 ; shift--) {
           int bit = (n >> shift) & 1;
           if (bit == 1) {
               binary.append("1");
           } else {
               binary.append("0");
           }
       }
       return binary.toString();
   }

    public static void main(String[] args) throws Exception {
        System.out.println(" binary = " + toBinary(7, 4));
        System.out.println(" binary = " + Integer.toString(7,2));
    }
}

বাইনারি = 0111 বাইনারি = 111
আরতাভাজড মানুকিয়ান

1
স্ট্রিং হেক্সস্ট্রিং = স্ট্রিং.ফর্ম্যাট ("% 2s", ইন্টিজার.টোহেক্সস্ট্রিং (এইচ)) প্রতিস্থাপন ('', '0');
আরতাওয়াজদ মানুকিয়ান

5

এই জিনিসটি আমি কয়েক মিনিট আগে লিখেছিলাম কেবল ঘোরাঘুরি। আশা করি এটা সাহায্য করবে!

public class Main {

public static void main(String[] args) {

    ArrayList<Integer> powers = new ArrayList<Integer>();
    ArrayList<Integer> binaryStore = new ArrayList<Integer>();

    powers.add(128);
    powers.add(64);
    powers.add(32);
    powers.add(16);
    powers.add(8);
    powers.add(4);
    powers.add(2);
    powers.add(1);

    Scanner sc = new Scanner(System.in);
    System.out.println("Welcome to Paden9000 binary converter. Please enter an integer you wish to convert: ");
    int input = sc.nextInt();
    int printableInput = input;

    for (int i : powers) {
        if (input < i) {
            binaryStore.add(0);     
        } else {
            input = input - i;
            binaryStore.add(1);             
        }           
    }

    String newString= binaryStore.toString();
    String finalOutput = newString.replace("[", "")
            .replace(" ", "")
            .replace("]", "")
            .replace(",", "");

    System.out.println("Integer value: " + printableInput + "\nBinary value: " + finalOutput);
    sc.close();
}   

}


5

পূর্ণসংখ্যাটিকে বাইনারি রূপান্তর করুন:

import java.util.Scanner;

public class IntegerToBinary {

    public static void main(String[] args) {

        Scanner input = new Scanner( System.in );

        System.out.println("Enter Integer: ");
        String integerString =input.nextLine();

        System.out.println("Binary Number: "+Integer.toBinaryString(Integer.parseInt(integerString)));
    }

}

আউটপুট:

পূর্ণসংখ্যা প্রবেশ করান:

10

বাইনারি সংখ্যা: 1010


নির্দিষ্ট পণ্য / সংস্থার অতিরিক্ত প্রচার (যে আমি এখানে সরিয়ে দিয়েছি) সম্প্রদায় স্প্যাম হিসাবে বিবেচনা করতে পারে । কটাক্ষপাত সহায়তা কেন্দ্র , বিশেষ করে আচরণ কি ধরনের ব্যবহারকারীদের বলে আশা করা হচ্ছে? শেষ বিভাগ: স্ব-প্রচার প্রচারকে এড়িয়ে চলুন । আপনার আগ্রহীও হতে পারে আমি স্ট্যাক ওভারফ্লোতে কীভাবে বিজ্ঞাপন দেব?
টুনাকি

4

অন্তর্নির্মিত ফাংশন ব্যবহার:

String binaryNum = Integer.toBinaryString(int num);

আপনি যদি বাইনারি রূপান্তর করতে অন্তর্নির্মিত ফাংশনটি ব্যবহার করতে না চান তবে আপনি এটিও করতে পারেন:

import java.util.*;
public class IntToBinary {
    public static void main(String[] args) {
        Scanner d = new Scanner(System.in);
        int n;
        n = d.nextInt();
        StringBuilder sb = new StringBuilder();
        while(n > 0){
        int r = n%2;
        sb.append(r);
        n = n/2;
        }
        System.out.println(sb.reverse());        
    }
}

4

সবচেয়ে সহজ পদ্ধতির নম্বরটি বিজোড় কিনা তা যাচাই করা। এটি যদি সংজ্ঞা অনুসারে হয় তবে এর ডানদিকের বাইনারি সংখ্যাটি "1" (2 ^ 0) হবে। আমরা এটি নির্ধারণ করার পরে, আমরা নম্বরটি কিছুটা ডানে সরিয়ে নিয়েছি এবং পুনরাবৃত্তি ব্যবহার করে একই মানটি পরীক্ষা করব।

@Test
public void shouldPrintBinary() {
    StringBuilder sb = new StringBuilder();
    convert(1234, sb);
}

private void convert(int n, StringBuilder sb) {

    if (n > 0) {
        sb.append(n % 2);
        convert(n >> 1, sb);
    } else {
        System.out.println(sb.reverse().toString());
    }
}

1
আমি মনে করি এটি ম্যানুয়ালি করার সত্যিই মার্জিত উপায়, যদি আপনি সত্যিই অন্তর্নির্মিত পদ্ধতিগুলি ব্যবহার করতে না চান।
paneetloke

4

এখানে আমার পদ্ধতিগুলি, এটি কিছুটা নিশ্চিত যে সংখ্যার বাইটগুলি স্থির

private void printByte(int value) {
String currentBinary = Integer.toBinaryString(256 + value);
System.out.println(currentBinary.substring(currentBinary.length() - 8));
}

public int binaryToInteger(String binary) {
char[] numbers = binary.toCharArray();
int result = 0;
for(int i=numbers.length - 1; i>=0; i--)
  if(numbers[i]=='1')
    result += Math.pow(2, (numbers.length-i - 1));
return result;
}

3

বিট শিফট ব্যবহার করা একটু দ্রুত ...

public static String convertDecimalToBinary(int N) {

    StringBuilder binary = new StringBuilder(32);

    while (N > 0 ) {
        binary.append( N % 2 );
        N >>= 1;
     }

    return binary.reverse().toString();

}

2

এটি সিউডোকোড হিসাবে প্রকাশ করা যেতে পারে:

while(n > 0):
    remainder = n%2;
    n = n/2;
    Insert remainder to front of a list or push onto a stack

Print list or stack

1

আপনার সত্যই Integer.toBinaryString () ব্যবহার করা উচিত (উপরে দেখানো হয়েছে), তবে যদি কোনও কারণে আপনি নিজের চান:

// Like Integer.toBinaryString, but always returns 32 chars
public static String asBitString(int value) {
  final char[] buf = new char[32];
  for (int i = 31; i >= 0; i--) {
    buf[31 - i] = ((1 << i) & value) == 0 ? '0' : '1';
  }
  return new String(buf);
}

0

এই জাতীয় কিছু সঙ্গে এটি বেশ সহজ হওয়া উচিত:

public static String toBinary(int number){
    StringBuilder sb = new StringBuilder();

    if(number == 0)
        return "0";
    while(number>=1){
        sb.append(number%2);
        number = number / 2;
    }

    return sb.reverse().toString();

}

0

বাইনারি তে কোনও int রূপান্তর করতে আপনি লুপের পাশাপাশি ব্যবহার করতে পারেন। এটার মত,

import java.util.Scanner;

public class IntegerToBinary
{
   public static void main(String[] args)
   {
      int num;
      String str = "";
      Scanner sc = new Scanner(System.in);
      System.out.print("Please enter the a number : ");
      num = sc.nextInt();
      while(num > 0)
      {
         int y = num % 2;
         str = y + str;
         num = num / 2;
      }
      System.out.println("The binary conversion is : " + str);
      sc.close();
   }
}

উত্স এবং রেফারেন্স - জাভা উদাহরণে বাইনারি মধ্যে int রূপান্তর


0
public class BinaryConverter {

    public static String binaryConverter(int number) {
        String binary = "";
        if (number == 1){
            binary = "1";
            System.out.print(binary);
            return binary;
        }
        if (number == 0){
            binary = "0";
            System.out.print(binary);
            return binary;
        }
        if (number > 1) {
            String i = Integer.toString(number % 2);

            binary = binary + i;
            binaryConverter(number/2);
        }
        System.out.print(binary);
        return binary;
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.