Saya memiliki nomor dan saya ingin mencetaknya dalam bentuk biner. Saya tidak ingin melakukannya dengan menulis algoritma, Apakah ada fungsi bawaan untuk itu di Java?
277
Asumsikan maksud Anda "bawaan":
int x = 100;
System.out.println(Integer.toBinaryString(x));
Lihat dokumentasi Integer .
( Long
memiliki metode yang serupa, BigInteger
memiliki metode turunan di mana Anda dapat menentukan radix.)
Di sini tidak perlu hanya bergantung pada format biner atau lainnya ... satu fungsi bawaan fleksibel tersedia Yang mencetak format mana pun yang Anda inginkan dalam program Anda .. Integer.toString (int, representasi);
sumber
toBinaryString
menggunakan output komplemen dua,toString
menutupi nomor basis yang ditentukan dan menempatkan tanda negatif di depan, jaditoString(-8, 2) == "-1000"
sumber
Saya membutuhkan sesuatu untuk mencetak dengan baik dan memisahkan bit setiap n-bit. Dengan kata lain tampilkan angka nol di depan dan tampilkan sesuatu seperti ini:
Jadi, inilah yang saya tulis:
Aktifkan seperti ini:
sumber
result.replace(result.length() - 1, result.length(), "");
diperlukan? Seperti yang kita lewatiint
yang sudah 32-bit. Apa yang kita ganti pada baris terakhir kedua?String
kelastrim
untuk mencapai efek yang sama.Sekolah tua:
sumber
System.out.println
dan&
dibangun di dalam;)Keluaran:
sumber
lihat logika ini dapat mengonversi angka ke basis apa pun
ATAU
sumber
Ini adalah cara paling sederhana untuk mencetak representasi biner internal integer. Sebagai Contoh : Jika kita mengambil n sebagai 17 maka hasilnya adalah: 0000 0000 0000 0000 0000 0000 0001 0001
sumber
Coba saja. Jika ruang lingkup hanya mencetak nilai biner dari nilai integer yang diberikan. Itu bisa positif atau negatif.
memasukkan
5
Keluaran
101
sumber
Solusi menggunakan tampilan 32 bit,
sumber
Solusi sederhana dan cukup mudah.
sumber
Sudah ada jawaban bagus yang diposting di sini untuk pertanyaan ini. Tapi, inilah cara saya mencoba sendiri (dan mungkin berbasis logika termudah → modulo / divide / add ):
sumber
Pertanyaannya rumit di java (dan mungkin juga dalam bahasa lain).
Integer adalah tipe data yang ditandatangani 32-bit , tetapi Integer.toBinaryString () mengembalikan representasi string dari argumen integer sebagai integer yang tidak ditandatangani di basis 2.
Jadi, Integer.parseInt (Integer.toBinaryString (X), 2) dapat menghasilkan pengecualian (ditandatangani vs. tidak ditandatangani).
Cara aman adalah menggunakan Integer.toString (X, 2); ini akan menghasilkan sesuatu yang kurang elegan:
-11110100110
Tapi itu berhasil !!!
sumber
Saya pikir ini adalah algoritma paling sederhana sejauh ini (bagi mereka yang tidak ingin menggunakan fungsi bawaan):
Contoh:
convertNumber (1) -> "0b1"
convertNumber (5) -> "0b101"
convertNumber (117) -> "0b1110101"
Cara kerjanya: while-loop memindahkan angka ke kanan (mengganti bit terakhir dengan second-to-last, dll), mendapatkan nilai bit terakhir dan meletakkannya di StringBuilder, ulangi sampai tidak ada bit yang tersisa (saat itulah a = 0).
sumber
sumber
Coba dengan cara ini:
}
10010100
sumber
Representasi biner dari int x yang diberikan dengan nol di sebelah kiri:
sumber
Masukkan angka desimal sebagai input. Setelah itu kita beroperasi seperti modulo dan divisi untuk mengubah input yang diberikan menjadi angka biner. Berikut adalah kode sumber dari Program Java untuk Mengkonversi Nilai Integer menjadi Biner dan jumlah bit biner ini untuk angka desimalnya. Program Java berhasil dikompilasi dan dijalankan pada sistem Windows. Output program juga ditunjukkan di bawah ini.
sumber
Karena tidak ada jawaban yang diterima, mungkin pertanyaan Anda tentang bagaimana menyimpan integer dalam file biner. java.io.DataOutputStream mungkin yang Anda cari: https://docs.oracle.com/javase/8/docs/api/java/io/DataOutputStream.html
sumber
Anda dapat menggunakan bit mask (1 << k) dan melakukan DAN pengoperasian dengan angka! 1 << k memiliki satu bit pada posisi k!
sumber
Ini bekerja dengan nilai yang ditandatangani dan tidak ditandatangani menggunakan manipulasi bit yang kuat dan menghasilkan nol pertama di sebelah kiri.
sumber