-
十进制转32位二进制(Java)
2019-12-04 13:22:19十进制转32位二进制(Java),输入一个正整数N,输出一个32位的二进制数(例如输入2,输出前面30个0+10)十进制转32位二进制(Java)
十进制转32位二进制(Java)
一、题目
输入一个正整数N,输出一个32位的二进制数(例如输入2,输出前面30个0+10)
如下图所示
二、代码实现
text3.java
package ch03; import java.util.Scanner; import ch03.SqStack; public class Test3 { /** * @author 春 * @num …… * @text 2.输入一个正整数N,输出一个32位的二进制数(例如输入2,输出30个0+10) */ public static void main(String[] args) throws Exception { Scanner scan = new Scanner(System.in); System.out.print("输入十进制数为:"); int Dec = scan.nextInt(); SqStack test = new SqStack(32); test.bin(Dec); System.out.print("输出的二进制为:"); test.display(); } }
SqStack.java
package ch03; public class SqStack implements IStack { private Object[] stackElem; private int top; boolean b; public SqStack(int maxSize) { top = 0; stackElem = new Object[maxSize]; } public void clear() { top = 0; } public boolean isEmpty() { return top == 0; } public int length() { return top; } public Object peek() { if (!isEmpty()) return stackElem[top - 1]; else return null; } public Object pop() { if (isEmpty()) return null; else return stackElem[--top]; } public void push(Object x) throws Exception { if (top == stackElem.length) throw new Exception("栈满"); else stackElem[top++] = x; } public void display() { if(top < 32){ for(int i=1; i<= 32-top; i++){ System.out.print("0"); } } for (int i = top - 1; i >= 0; i--) System.out.print(stackElem[i].toString() + ""); } public void bin(int x){ int n = 0; while(x > 0){ n = x%2; try { push(n); } catch (Exception e) { e.printStackTrace(); } x = x / 2; } } }
IStack.java
package ch03; public interface IStack { public void clear(); public boolean isEmpty(); public int length(); public Object peek(); public void push(Object x) throws Exception; public Object pop(); }
三、测试结果
-
点分十进制转32位二进制数组
2018-03-07 09:18:07该方法返回长度为32的byte数组 byte[] bytes = new byte[32] 不是 byte[] bytes = new byte[4] public static byte[] StringToBinary(String strIP){ String stringIP = strIP.replace(".", " &...该方法返回长度为32的byte数组
byte[] bytes = new byte[32] 不是 byte[] bytes = new byte[4]
public static byte[] StringToBinary(String strIP){ String stringIP = strIP.replace(".", " ");//用空格取代点 String[] stringIP_Splits = stringIP.split(" "); //将IP地址字符串以空格切割 StringBuffer ipV4 = new StringBuffer(); //创建一个StringBuffer来拼接字符串 for (String string : stringIP_Splits) { int parseInt = Integer.parseInt(string); String string3 = Integer.toBinaryString(parseInt); // System.out.println(string3); //输出二进制字符串 int length; // 判定长度为8位,不足8位,前面补0 if((length=string3.length())<8){ for (int i = 0; i < 8-length; i++) { ipV4.append("0"); } } ipV4.append(string3); } System.out.println(ipV4.toString()); byte[] bs = ipV4.toString().getBytes(); return bs; }
-
C语言笔记:进制转换与32位二进制IP地址转换十进制问题
2019-10-02 16:35:06假设需要编写一个程序,实现32位二进制IP地址(32个字符长的1和0)转换为点分十进制格式并输出。IP地址的点分十进制格式通过将32位从低位到高位(右到左)一次分组八位,总共分4次,任何8位二进制数对应的十进制数都...问题描述:
假设需要编写一个程序,实现32位二进制IP地址(32个字符长的1和0)转换为点分十进制格式并输出。IP地址的点分十进制格式通过将32位从低位到高位(右到左)一次分组八位,总共分4次,任何8位二进制数对应的十进制数都是IP地址的有效部分。C语言实现代码:
/* 问题描述: 假设正在读取表示IP地址的字节流,任务是将32个字符长的1和0(位)序列转换为点分十进制格式,IP地址的点分十进制 格式是通过将32位字节流一次分组8位,并将二进制表示转换为十进制表示形式 */ #include <stdio.h> #include <string.h> #define base 2 int main(void) { int n; printf("请输入需要将32位二进制IP地址转化为点分十进制格式的数量:"); scanf("%d",&n); for(int i=0;i<n;i++) { char s[40]; int sum=0,flag=0;//flag为控制分隔符"."的输出 scanf("%s",s); for(int j=0;j<strlen(s);j++) { sum=sum*base+s[j]-'0';//此处是重点,每8位二进制数转换为十进制数 if(j%8==7)//当j=7,15,23,31时开始输出 { if(flag) { printf(".");//输出第一个八位二进制对应的十进制数时,不输出"." } printf("%d",sum); sum=0;//sum置零,运算第二个八位二进制对应的十进制数 flag=1;//从第二个开始输出"." } } printf("\n"); } return 0; }
输出结果:
-
十进制整数转成二进制、二进制转八进制、二进制转十六进制方法。
2020-02-28 21:31:32十进制转成二进制: 首先找临近这个数字最近的2的次方。 128 64 32 16 8 4 2 1 比如13 = 8 + 4 + 1,参与相加的数字位上写1,未参与相加的数字位上写0。 则13的二进制为1101。 同理123 =...十进制转成二进制:
首先找临近这个数字最近的2的次方。
128 64 32 16 8 4 2 1 比如13 = 8 + 4 + 1,参与相加的数字位上写1,未参与相加的数字位上写0。
则13的二进制为1101。
同理123 = 64 + 32 +16 + 8 + 2 +1,则123的二进制为0111 1011
二进制转八进制
已知13的二进制为00001101,将13的二进制每三个一组,不够三位的补全。
000 001 101
0 2^0 2^0+2^2
0 1 5
则13的八进制为015
二进制转十六进制 十六进制 1 2 3 4 5 6 7 8 9 a b c d e f
某二进制数为1011001010110101011111,每四位一组,不够四位的补全。
0010 1100 1010 1101 0101 1111
2^1 2^2+2^3 2^1+2^3 2^0+2^2+2^3 2^0+2^2 2^0+2^1+2^2+2^3
2 c a d 5 f
则该数16进制为:0x2cad5f
-
二进制 转 十进制 转 十六进制
2019-10-12 17:11:02二进制 转 十进制 转 十六进制 二进制数 : 0110 0011 转十进制 0 1 1 0 0 0 1 1 128 64 32 16 8 4 2 1 64 + 32 + 2 + 1 = 99 转成十进制为99 转十六进制 (每一个字节(4位)是一个十六进制数(1~f)... -
32位系统将十进制转换为二进制和八进制。
2016-11-08 16:06:14问题1:将十进制转换为二进制。 例:输入十进制5 输出二进制0000 0000 0000 0000 0000 0000 0000 0101 问题2:将十进制转换为八进制。 例:输入十进制5 输出八进制0x00000005 -
求十进制转二进制以32位精度存储和读取程序
2015-12-28 09:41:02想写一个输入任意十进制数,然后可以转为前高后低和前低后高两种格式,32位存储的二进制数据。然后再将这两种格式的32位二进制数据正确读取出来。 -
位运算之十进制转二进制 十六进制转二进制
2016-12-17 21:59:21利用位运算进行进制间的转换#include #include int inttoBin(unsigned int num) { int i; unsigned int mask = 0x80000000; for(i = 0; i < 32; i++) { if((num & mask) == mask) { printf("1"); } ... -
二进制转十进制,十进制转二进制的原理
2008-11-13 21:42:18十进制转二进制: 用2辗转相除至结果为1 将余数和最后的1从下向上倒序写 就是结果 例如302 302/2 = 151 余0 151/2 = 75 余1 75/2 = 37 余1 37/2 = 18 余1 18/2 = 9 余0 9/2 = 4 余1 4/2 = 2 余0 2/2 = 1 ... -
二进制和十进制转换JAVA_二进制和十进制相互转换、位移运算
2021-03-13 20:23:38二进制和十进制相互转换、位运算记录下在codewar上做的一个题目和收获128.32.10.1 == 10000000.00100000.00001010.00000001Because the above IP address has 32 bits, we can represent it as the unsigned 32 bit ... -
十进制转换位二进制,十六进制(直接、间接)
2020-10-11 18:40:54一、十进制转换成二进制 1、正整数转二进制 要点:除二取余,倒序排列,高位补零。 方法:将正的十进制数除以二,得到的商再除以二,依次类推直至商为0或1时为止,然后在旁边标出各步的余数,最后倒着写出来,高位... -
c++十进制转二进制_二进制与十进制如何互相转换?
2020-11-28 11:57:27正整数的十进制转换二进制将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取除得的余数,即换算为二进制数的结果。只需记住要点:除二取余,倒序排列。由于计算机内部表示数的字节单位... -
stm32十六进制转十进制_二进制、八进制、十进制、十六进制相互转化
2020-12-05 22:35:42(一)计算机的数制一、数制就是用统一的方法计数1.十进制 数值是0~9 逢十进一2....十六进制 数值0~9 A~F 逢十六进一二、数位一个数字所在的位置1000 4位 个0 十1 百2千310101 二进制 5位 01234三、基数基数是数制中... -
Reverse Bits 比特流反转,求十进制数的32位二进制串翻转后对应的十进制数,二进制与十进制转换
2016-11-06 15:38:48Reverse bits of a given 32 bits unsigned integer. For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binary as -
c++二进制转十进制_二进制与十进制如何互相转换?
2020-10-21 18:06:39正整数的十进制转换二进制将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取除得的余数,即换算为二进制数的结果。只需记住要点:除二取余,倒序排列。由于计算机内部表示数的字节单位... -
8位十六进制转换32位十六进制_网络中的数制系统--二进制十六进制与十进制之间的相互转换...
2021-01-17 22:10:20网络中计算机的32位IPv4地址以二进制显示,也会以点分十进制显示。而IPv6的地址是128位,是由数字和A-F组成的十六进制系统。因此,了解并且学会在其三者之间相互转换是非常重要的,让我们能够更好的了解它们。二进制... -
Python中实现:十进制转换为二进制、八进制、十六进制
2020-07-18 17:44:231)整数的范围取决于机器是32位还是64位,长整数的范围是取决于虚拟内存的大小 2)整数一般以十进制表示,但是python也支持八进制(0开始)或十六进制(0x开始)来表示整数 进制转换 命令 转二进制 bin(10... -
stm32十六进制转十进制_数学糖果S11:N进制转十进制
2020-12-05 16:12:34- - - - - - - N 进 制 转 十 进 制 - - - - - - -在以阿拉伯数字和英文字母为数字符号的位值制记数系统中,基于位值原理,可将非十进制的N进制如下转化为十进制——①二进制:数字符号含0、1,位置值为2的整数次幂... -
计算机之间的进制转换,二进制转八进制、十进制、十六进制
2018-07-19 21:30:19(一)二进制转十进制 如: 66 = 64 + 2; 128 64 32 16 8 4 2 1 0 1 0 0 0 0 1 0 负十进制转换为二进制的方式 1)先将该整数的绝对值转换为二进制,然后进行按位取反再加1. 如: -... -
stm32十六进制转十进制_6、计算机进制之二进制、十进制、十六进制之间的转换...
2020-12-05 22:35:451、计算机的数制介绍数制:计数的方法,指用一组固定的符号和统一的规则来表示数值的...2、数制的表示方法3、数制的计算4、进制之间的转换4.1、正整数的十进制转换二进制将一个十进制数除以二,得到的商再除以二,依... -
十进制转换为二进制和十六进制
2019-09-29 16:43:18十进制转换为二进制: 方法1:除二取余法 每次将整数除以二,余数为该位上的权数,然后...方法二:根据一个十进制数的组成写出其二进制,一个32位系统低八位的值分别是128,64,32,16,8,4,2,1.从大往小选择,选择可以... -
二进制和十进制的转换and位运算
2021-01-30 11:02:13基数: 每个进制的基数 比如十进制是10 二进制是2 二进制的位权:固定位置对应的单位值。比如一个数字从右往左从0开始递增 1.将二进制数转换成十进制 转换规则: 展开位权进行求和运算 100110 1x2^5+0x2^4+0x2^3+1x2... -
十进制转换十六进制、八进制、二进制
2019-09-18 14:56:131、先看10-->...int类型的数据有32位,16进制用4位二进制表示一位。用int的二进制数依次 & 15 ,结果倒序就是16进制数,如图 代码如下: publicstaticvoidmain(String[]args){ toHex(60);... -
负数十进制转二进制
2017-03-30 13:57:13负数十进制转二进制 三部 (1)先将十进制转为二进制数: 例:(-10)10=(00000110)2 带符号 (2)将二进制数取反: 取反得11111001 (3)将取得得反码加一: 得:11111010; 即(-10)10=... -
十进制转二进制、十六进制
2019-09-28 09:10:141.什么是进制转换 进制转换是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本...2.二进制 位权:一个字节表示八个比特位,这八个比特位分别代表的位权是 128 64 32 16 8 4 2 1 ,即128=2^7, 64=2^6...