十进制转换为二进制(java)
方法一: 主要通过辗转相除法实现,既 不断除二求余数的过程,但是需要注意正负数。
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)相关推荐
- Java 实验5 T3 将十进制转换为二进制
题目 将十进制转换为二进制 代码 import java.util.Scanner;public class chapter5_3 {public static void main(String[] ...
- JAVA复习【10】十进制转换为二进制
十进制转换为二进制 方法一:直接使用转换函数 // 将数字转换成字符串 Integer.toString(num); // 将数字转换成二进制 Integer.toBinaryString(num); ...
- java中如何将十进制转换为二进制
一.进制是什么? 进制也就是进位计数制,是人为定义的带进位的计数方法. 对于任何一种进制-X进制,就表示每一位上的数运算时都是逢X进一位. 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一, ...
- C语言递归算法将十进制转换为二进制(附完整源码)
C语言递归算法将十进制转换为二进制 C语言递归算法将十进制转换为二进制完整源码 C语言递归算法将十进制转换为二进制完整源码 #include <assert.h>/*** Decimal ...
- 将一个十进制转换为二进制,八进制,十六进制
package com.db2;/*** 将一个十进制转换为二进制,八进制,十六进制* * @author denny**/ public class Demo2 {public static voi ...
- [转载] Python程序将十进制转换为二进制,八进制和十六进制
参考链接: Python程序将十进制转换为二进制,八进制和十六进制 Here you will get python program to convert decimal to binary, oct ...
- C++进制转换程序(二进制转换为十进制,十进制转换为二进制)
1.十进制转换为二进制 #include<iostream> using namespace std; int main(){ int N; cout<<"p ...
- C语言——十进制转换为二进制
#include <stdio.h> #include <math.h> //十进制转换为二进制 long long convertDecimalToBinary(int n) ...
- c语言十进制转八进制递归,C语言之利用递归将十进制转换为二进制
#include #include void change2(int num) { if (num != 0) { change2(num / 2); printf("%d", n ...
- 【C语言】之实现十进制转换为二进制
/** 文件名:二进制转换.c* 功能描述:把10进制数转换为二进制数* 编写人:王廷云 */ #include <stdio.h>#define NR (sizeof(int)*8) / ...
最新文章
- Python 的一万种用法:制作 Web 可视化页面
- 阿里云交通数据中台解决方案,打造“数字化生产力”
- 话剧《白鹿原》:叫人乍舌,令人唏嘘,也让人捏把汗(图)
- Gym - 100543L
- python发送excel文件_Python操作Excel, 开发和调用接口,发送邮件
- Hive Udf Rank
- 如何在熊猫数据框的列中将所有NaN值替换为零
- 从 Google 的一道面试题说起·
- 跨网段局域网如何互通_如何实现局域网中不同网段互访?企业网必备的高级静态路由...
- zoj2901【DP·二进制优化】
- EXT2的文件系统装载之内核函数ext2_fill_super分析
- 关于matlab文献综述,Matlab文献综述
- 2022 Google IO大会新技术
- UE4TTS文字转语音功能。
- 【Python黑科技】图片太大不能上传?三种压缩图片大小的方法(代码注释详细)
- windows7 专业版安装中文语言包
- 《狂人日记》(书感)
- arduino声音传感器与二极管_如何将声音传感器与Arduino连接 并实现继电器控制项目...
- mapbox pbf vt2geojson 解析pbf图层为geojson格式
- Android Google Map实例 - 在地图和卫星图之间切换(Android mapview)