สิ่งที่จะเป็นวิธีที่ดีที่สุด (นึกคิดง่ายที่สุด) เพื่อแปลง int เป็นตัวแทนสตริงไบนารีใน Java?
ตัวอย่างเช่นสมมติว่า int คือ 156 การแสดงสตริงไบนารี่ของสิ่งนี้จะเป็น "10011100"
สิ่งที่จะเป็นวิธีที่ดีที่สุด (นึกคิดง่ายที่สุด) เพื่อแปลง int เป็นตัวแทนสตริงไบนารีใน Java?
ตัวอย่างเช่นสมมติว่า int คือ 156 การแสดงสตริงไบนารี่ของสิ่งนี้จะเป็น "10011100"
คำตอบ:
Integer.toBinaryString(int i)
นอกจากนี้ยังมีวิธีjava.lang.Integer.toString (int i, int base)ซึ่งจะเหมาะสมกว่าหากรหัสของคุณอาจใช้เวลาหนึ่งวันจัดการกับฐานอื่นที่ไม่ใช่ 2 (ไบนารี)
public static string intToBinary(int n)
{
string s = "";
while (n > 0)
{
s = ( (n % 2 ) == 0 ? "0" : "1") +s;
n = n / 2;
}
return s;
}
อีกวิธีหนึ่งโดยการใช้java.lang.Integerคุณสามารถรับค่าสตริงแทนอาร์กิวเมนต์แรกi
ในอาร์กิวเมนต์radix (Octal - 8, Hex - 16, Binary - 2)
ที่สองที่ระบุ
Integer.toString(i, radix)
ตัวอย่าง_
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
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));
}
}
นี่คือสิ่งที่ฉันเขียนเมื่อไม่กี่นาทีที่ผ่านมา หวังว่ามันจะช่วย!
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();
}
}
แปลงจำนวนเต็มเป็นไบนารี:
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
ใช้ฟังก์ชั่นในตัว:
String binaryNum = Integer.toBinaryString(int num);
หากคุณไม่ต้องการใช้ฟังก์ชันในตัวสำหรับการแปลง int เป็นไบนารี่คุณสามารถทำได้ดังนี้:
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());
}
}
วิธีที่ง่ายที่สุดคือการตรวจสอบว่าเป็นเลขคี่หรือไม่ หากเป็นไปตามนิยามเลขฐานสองที่ถูกต้องที่สุดจะเป็น "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());
}
}
นี่คือวิธีการของฉันมันค่อนข้างมั่นใจว่าจำนวนไบต์คงที่
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;
}
การใช้การเปลี่ยนบิตเป็นการเร็วขึ้นเล็กน้อย ...
public static String convertDecimalToBinary(int N) {
StringBuilder binary = new StringBuilder(32);
while (N > 0 ) {
binary.append( N % 2 );
N >>= 1;
}
return binary.reverse().toString();
}
สิ่งนี้สามารถแสดงใน pseudocode เป็น:
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
คุณควรใช้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);
}
นี่ควรจะค่อนข้างง่ายกับสิ่งนี้:
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();
}
คุณสามารถใช้ในขณะที่วนรอบเช่นกันเพื่อแปลง 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 เป็นไบนารีในตัวอย่างJava
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;
}
}