方法一: 主要通过辗转相除法实现,既 不断除二求余数的过程,但是需要注意正负数。

public class Number2Binary {public static void main(String[] args) {Scanner input = new Scanner(System.in);while (true){System.out.print("input a number:");int number = input.nextInt();int number2;// 如果是负数,需要加上2^31次方if (number < 0) {number2 = (int)(Math.pow(2,31) + number);}else{number2 = number;}String binary = "";// 通过辗转相除法,求出二进制数,保存在binary中int shang  = number2;int yu ;int count = 0;while(shang != 0) {yu = shang % 2;shang /= 2;count++;if (count % 4 == 0) {binary = "_" + yu + binary;} else {binary = yu + binary;}}// 不够32位,需要补齐while(count < 31){count++;if(count % 4 == 0 ){binary = "_" + 0 + binary;}else {binary = 0 + binary;}}//判断符号位if(number < 0 ){binary = 1 + binary;}else {binary = 0 + binary;}System.out.println(binary);}}
}

测试案例

方法二:通过位移的方式

从最高位的数移至最低位(移31位),除过最低位其余位置清零。
使用1与移位后的数字相&,是为了拿到最低位的数字。
使用& 操作,可以使用和1相与(&),由于1在内存中除过最低位是1,其余31位都是零,然后把这个数按十进制输出;再移次高位,做相同的操作,直到最后一位 。

public static void binaryToTwo(int n) {for (int i = 31; i >= 0; i--)System.out.print(n >>> i & 1);}
 -2的二进制 :1111_1111_1111_1111_1111_1111_1111_1110-2 >>> 31  : 1111_1111_1111_1111_1111_1111_1111_1110  -2 >>> 31 & 1 = 1-2 >>> 30 & 1 = 1-2 >>> 0  &  1 = 0

说明:在计算机中负数是按照补码输出,既 负数的补码 = 源码取反(符号位不变) + 1;

位运算的知识点补充: 知识点补充

十进制转换为二进制(java)相关推荐

  1. Java 实验5 T3 将十进制转换为二进制

    题目 将十进制转换为二进制 代码 import java.util.Scanner;public class chapter5_3 {public static void main(String[] ...

  2. JAVA复习【10】十进制转换为二进制

    十进制转换为二进制 方法一:直接使用转换函数 // 将数字转换成字符串 Integer.toString(num); // 将数字转换成二进制 Integer.toBinaryString(num); ...

  3. java中如何将十进制转换为二进制

    一.进制是什么? 进制也就是进位计数制,是人为定义的带进位的计数方法. 对于任何一种进制-X进制,就表示每一位上的数运算时都是逢X进一位. 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一, ...

  4. C语言递归算法将十进制转换为二进制(附完整源码)

    C语言递归算法将十进制转换为二进制 C语言递归算法将十进制转换为二进制完整源码 C语言递归算法将十进制转换为二进制完整源码 #include <assert.h>/*** Decimal ...

  5. 将一个十进制转换为二进制,八进制,十六进制

    package com.db2;/*** 将一个十进制转换为二进制,八进制,十六进制* * @author denny**/ public class Demo2 {public static voi ...

  6. [转载] Python程序将十进制转换为二进制,八进制和十六进制

    参考链接: Python程序将十进制转换为二进制,八进制和十六进制 Here you will get python program to convert decimal to binary, oct ...

  7. C++进制转换程序(二进制转换为十进制,十进制转换为二进制)

    1.十进制转换为二进制 #include<iostream> using namespace std; int main(){ int N;     cout<<"p ...

  8. C语言——十进制转换为二进制

    #include <stdio.h> #include <math.h> //十进制转换为二进制 long long convertDecimalToBinary(int n) ...

  9. c语言十进制转八进制递归,C语言之利用递归将十进制转换为二进制

    #include #include void change2(int num) { if (num != 0) { change2(num / 2); printf("%d", n ...

  10. 【C语言】之实现十进制转换为二进制

    /** 文件名:二进制转换.c* 功能描述:把10进制数转换为二进制数* 编写人:王廷云 */ #include <stdio.h>#define NR (sizeof(int)*8) / ...

最新文章

  1. Python 的一万种用法:制作 Web 可视化页面
  2. 阿里云交通数据中台解决方案,打造“数字化生产力”
  3. 话剧《白鹿原》:叫人乍舌,令人唏嘘,也让人捏把汗(图)
  4. Gym - 100543L
  5. python发送excel文件_Python操作Excel, 开发和调用接口,发送邮件
  6. Hive Udf Rank
  7. 如何在熊猫数据框的列中将所有NaN值替换为零
  8. 从 Google 的一道面试题说起·
  9. 跨网段局域网如何互通_如何实现局域网中不同网段互访?企业网必备的高级静态路由...
  10. zoj2901【DP·二进制优化】
  11. EXT2的文件系统装载之内核函数ext2_fill_super分析
  12. 关于matlab文献综述,Matlab文献综述
  13. 2022 Google IO大会新技术
  14. UE4TTS文字转语音功能。
  15. 【Python黑科技】图片太大不能上传?三种压缩图片大小的方法(代码注释详细)
  16. windows7 专业版安装中文语言包
  17. 《狂人日记》(书感)
  18. arduino声音传感器与二极管_如何将声音传感器与Arduino连接 并实现继电器控制项目...
  19. mapbox pbf vt2geojson 解析pbf图层为geojson格式
  20. Android Google Map实例 - 在地图和卫星图之间切换(Android mapview)

热门文章

  1. 2011年上半年总结-虚惊
  2. C/C++校园疫情防控信息管理系统
  3. c语言staticint的作用,c语言中static是什么意思?作用是什么
  4. DIB-R 可微分渲染器使用
  5. java多线程同步的四种方法_java中实现多线程的两种方法
  6. git本地仓库绑定远程仓库
  7. it项目验收--流程
  8. 电子名片装上智能模块才能紧跟大数据网络时代
  9. excel中始终打开PERSONAL.XLSB表格
  10. nosql数据库特点与区别?常见的