精华内容
下载资源
问答
  • 首页>基础教程>常用类>常用 Integer类Java Integer....定义String toBinaryString(int i) //以2为基返回整数参数的字符串表示形式,表示为无符号整数也就是将传入的数值十进制转成二进制源码p...

    首页 > 基础教程 > 常用类 > 常用 Integer类

    Java Integer.toBinaryString()十进制转成二进制

    java中Integer.toBinaryString()用于将十进制转成二进制输出。

    定义

    String toBinaryString(int i) //以2为基返回整数参数的字符串表示形式,表示为无符号整数

    也就是将传入的数值十进制转成二进制

    源码

    public static String toBinaryString(int i) {

    return toUnsignedString0(i, 1);

    }

    private static String toUnsignedString0(int val, int shift) {

    // assert shift > 0 && shift <=5 : "Illegal shift value";

    //计算这个int转换成二进制后占多少bit(123-->>7)

    int mag = Integer.SIZE - Integer.numberOfLeadingZeros(val);

    //用于确定最后生成的字符串有几个字符

    int chars = Math.max(((mag + (shift - 1)) / shift), 1);

    char[] buf = new char[chars];

    //具体解析出每个字符是什么

    formatUnsignedInt(val, shift, buf, 0, chars);

    // Use special constructor which takes over "buf".

    return new String(buf, true);

    }

    static int formatUnsignedInt(int val, int shift, char[] buf, int offset, int len) {

    int charPos = len;

    int radix = 1 << shift;//2^shift (此例子是2^4)

    int mask = radix - 1; //(16进制-->>15 8进制-->>7)

    do {

    //val&mask 相当于 val%(mask+1) 这里是 123%16

    buf[offset + --charPos] = Integer.digits[val & mask];

    val >>>= shift;

    } while (val != 0 && charPos > 0);

    return charPos;

    }

    例子

    public class IntegerToBinaryStringDemo {

    public static void main(String[] args) {

    byte a=-1;

    System.out.println("-1 bin : "+ Integer.toBinaryString(a));

    System.out.println("-1&0xff bin: "+ Integer.toBinaryString(a&0xff));

    System.out.println("127 bin : "+ Integer.toBinaryString(127));

    System.out.println("-128 bin : "+ Integer.toBinaryString(-128));

    System.out.println("十进制转二进制:"+Integer.toBinaryString(120));

    }

    }

    输出:

    -1 bin : 11111111111111111111111111111111

    -1&0xff bin: 11111111

    127 bin : 1111111

    -128 bin : 11111111111111111111111110000000

    十进制转二进制:1111000

    版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。

    展开全文
  • 在一些数据处理过程中,需要将一组十进制小数转换成二进制数存储或者计算,这种操作在FPGA的使用中会经常遇到。本文分析了十进制小数转换成二进制数的方法。 1.N位二进制数的取值范围 N位无符号型(unsigned)取值...

    在一些数据处理过程中,需要将一组十进制小数转换成二进制数存储或者计算,这种操作在FPGA的使用中会经常遇到。本文分析了十进制小数转换成二进制数的方法。

    1.N位二进制数的取值范围

    N位无符号型(unsigned)取值范围:2^N - 1 ~ 0;(可以表示2^N个数)

    N位有符号型(signed)取值范围:-2^(N-1) ~ 2^(N-1) - 1;(可以表示2^N个数)

    举例:N=10

    无符号取值范围:1023~0;(2^10 - 1~0)

    有符号取值范围:-512 ~ 511;(-2^9 ~ 2^9 - 1

    2.十进制有符号小数量化为二进制数

    第一步:确认需要量化的二进制数的位数;

    第二步:将一组十进制数据进行归一化处理;

    第三步:将归一化后的数据扩大2^(N-1) - 1 倍并进行取整;

    第四步:判断数据大小,如果是正数也保持不变,如果是复数取其补码;

    第五步:可以按照2进制或者16进制进行存储或者显示;

    3.Matlab仿真代码

    clear all
    clc
    % Step1:Quantization Widths(bits)
    width = 12;
    % Generate decimal fraction
    N = 128;
    for k = 1:N
        Data(k,1) = exp(-k/N) - 0.5;
    end
    % Step2:Normalize the Data
    Nor_Data = Data/abs(max(Data)); 
    % Step3:Multiply by 2^N-1 and Round numbers
    Round_Data = fix(Nor_Data * ((2^(width - 1)) - 1));
    % Step4:Judge Round_Data
    for k = 1:length(Round_Data)
        if(Round_Data(k) >= 0)
            Round_Data(k) = Round_Data(k); 
        else
            Round_Data(k) = Round_Data(k) + 2^(width);
        end
    end
    % Step5:Display bin and hex
    % Round_Data_bin = double(dec2bin(Round_Data,12)) - double('0');
    Round_Data_bin = dec2bin(Round_Data,12);
    for k = 1:length(Round_Data_bin(:,1))
        fprintf('Data(%d) = %.4f\t二进制显示 = ',k,Data(k));
        for j = 1:length(Round_Data_bin(1,:))
            fprintf('%c',Round_Data_bin(k,j));
        end
        fprintf('\t十六进制显示 = %03X\n',Round_Data(k))
    end
    
    

    仿真结果:

     

    展开全文
  • 输入1个无符号二进制数串,编写程序将其转换对应的十进制数,并输出。 输入格式: 输入1个二进制数串(至少1位且不超过16位)。 输出格式: 输出转换后的十进制数。 输入样例: 0110110001100 输出样例: 3468 源...

    题目:

    输入1个无符号二进制数串,编写程序将其转换成对应的十进制数,并输出。

    输入格式:

    输入1个二进制数串(至少1位且不超过16位)。

    输出格式:

    输出转换后的十进制数。

    输入样例:

    0110110001100
    

    输出样例:

    3468
    

    源代码:

    #include <stdio.h>//输入输出函数
    #include <math.h>//数学库函数
    #include <string.h>//字符串处理函数
    int main()
    {
        char a[17];
        gets(a);
        int n,sum=0;
        n=strlen(a);
        for(int i=n-1,k=0;i>=0;i--,k++){
            sum+=(a[i]-48)*pow(2,k);
        }
        printf("%d",sum);
        return 0;
     }
    
    展开全文
  • 输入为一个二进制大整数(大整数大于0,不带符号前导0,至少1位数字,且不超过100位数字)。要求将该整数转换成十进制数,并输出。 建议:用字符数组存储大整数。 求代码
  • 从键盘输入1个小于65536的无符号十进制整数,将其转换16位二进制,并输出。 具体要求完成的功能如下: 1)如输入负数,则输出 “数据小于0” 2)如超过65535,则输出“超过最大数” 3)输出转换过的16位二进制数...

    题目内容:

    从键盘输入1个小于65536的无符号的十进制整数,将其转换成16位二进制,并输出。
    具体要求完成的功能如下:
    1)如输入负数,则输出 “数据小于0”
    2)如超过65535,则输出“超过最大数”
    3)输出转换过的16位二进制数;

    输入格式:

    输入一个小于65536的正整数

    输出格式:

    二进制数每8位数字后空一格,不足16位补0,行末没有空格。

    输入样例:

    765

    输出样例:

    00000010 11111101

    时间限制:500ms内存限制:32000kb

    #include <stdio.h>
    int main()
    {
    	int n , a[16];
    	scanf( "%d" , &n ) ;
    	if( n < 0 ) printf( "数据小于0\n" ) ;
    	else if( n > 65535 ) printf( "超过最大数" ) ;
    	else
    	{
    		int i ;
    		for( i = 15 ; i >= 0 ; i-- )
    			a[ i ] = 0 ;
    		i = 15 ;
    		do
    		{
    			a[ i ] = n % 2 ;
    			n /= 2 ;
    			i-- ;
    		} while( n > 0 ) ;
    		for( i = 0 ; i < 8 ; i++ )
    			printf( "%d" , a[ i ] ) ;
    		printf( " " ) ;
    		for( i = 8 ; i < 16 ; i++ )
    			printf( "%d" , a[ i ] ) ;
    		printf( "\n" ) ;
    	} 
    	return 0 ;
    }
    
    展开全文
  • 题目:将一个无符号整数转换为任意 d 进制数( 2 ≤ d ≤ 16 )。 思路:先举个例子。十进制100怎么转换为二进制呢? 记住:d进制的数就是0~(d-1)。 一般都是用辗转相除法(应该是叫这个名字),我比较喜欢这样写,...
  • 在计算机编程过程中,各种进制的转换很多,...那么同一组二进制数据在转成有符号和无符号变量时有什么关联呢? 通常我们将二进制数据进行反码、补码计算,再进行转换,计算比较复杂。 假设一个二进制数据为1000..
  • 负数二进制转换十进制

    千次阅读 2013-10-14 22:45:46
    题目: 设某单字节整数的二进制形式为11010011,其分别作为有符号和无符号整数转换成十进制的形式为 负数 1101 0011 -------(取反码)>1010 1100(末位+1)------->1010 1101
  • 十进制转二进制 方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除依此步骤继续向下运算直到商为0为止。 十进制转换为其他的进制同理 2进制转换为8进制之类的转换可以借助十进制...
  • data segment array dw 54321 dbcd db 5 dup(?) data ends code segment assume cs:code,ds:data; start: mov ax,data mov ds,ax mov dx,array mov bx,10000;除数 mo...
  • 1.1.二进制转十进制: 函数:bindec(string $binary_string) @param $binary_string 参数表示所要转换的二进制字符串。 @return 返回与$binary_string参数所表示的二进制数的十进制数等价值。 函数说明: bindec()...
  • data segment array dw 54321 dbcd db 5 dup(?)data endscode segmentassume cs:code,ds:data; start: mov ax,data mov ds,ax mov dx,array mov bx,10000;除数 ...
  • 十进制转化为二进制

    2021-01-12 18:56:36
    输入1个无符号十进制整数,将其转换成二进制,并输出。(10分) 题目内容: 从键盘输入1个小于65536的无符号十进制整数,将其转换16位二进制,并输出。 具体要求完成的功能如下: 1)如输入负数,则输出 ...
  • Oxffff转换成十进制

    千次阅读 2011-11-23 22:51:00
    十六进制0xFFFF可以...0xFFFF写成二进制,共有16个1。 最高位代表符号,1,代表“-”号; 后面的15位,需要“求反加一”才是绝对值,这15个1,即可求出绝对值是1。 所以,把十六进制0xFFFF转换成十进制就等于-1。
  •  如果要表示数值数据,就必须确定进位计数制,通常需要将十进制数据转换其它进制数据,转换方法如下:    由于小数部分在进行进制转换时,有些小数不能精确转换成二进制,所以C语言中对浮点型数与0进行相等...
  • 十六进制转换成十进制的方法

    千次阅读 2010-12-29 15:10:00
    对于正数而言比较好转换,一般就是按二进制转换成十进制的方法,就是乘16之类的;而对于有符号的数,就相对而言比较难点,特点是对于负数。总结方法如下:先根据最高位来判断正数OR负数,正数的话用无符号的方法解决...
  • 1.对一个二进制数1100111111000111 转化为十进制是多少? 如果最高位是符号位转换成十进制为-12345,而如果最高位不是符号位则为53191 如何怎么判断1100111111000111最高位是否是符号位呢? 不能判断 数据本型,...
  • 当存在无符号十六进制数(出现的字母为小写),通过代码使其转换成十进制数。 代码实现 知识准备: 简单十六进制数0~15为:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f 。 0~15对应的ASCII表值为:48,...
  • 龙源期刊网http://www.qikan.com.cnC语言中整型无符号二进制数的表示问题作者:马红旭来源:《电子技术与软件工程》2015年第20期摘要文章解决的问题是C语言中几种不同数制的数值型无符号整型数据,转换二进制数的...
  • //假设我这里输入的使“556” 将会... //转换响应的8进制数 while(*++p){ //输入“556 ” n=(n*8)+*p-'0'; // 1. n=(5*8)+5 2.n=((5*8)+5)*8+6 5*8次方+5*8一次方+6 } printf("%d\n",n); } 在这里插入
  • 进制之间的转换

    2016-06-09 20:55:00
    十六进制转换成十进制,是先把十六进制转成二进制然后再转成十进制,一个十六进制位是4位二进制位, 十进制转为二进制十进制小数转成二进制: 十六进制的转换 关系对照表 ...
  • 1022: 进制转换问题

    2014-03-30 10:41:00
    Description  大家都知道,计算机中是以二进制存储...小明最近在学c语言,熟悉了c语言中的各种进制转换问题,所以就尝试着各种进制转换的程序,现在他想写一个程序,把一个无符号数n,转化在b进制下的表示。例如:n
  • Description  大家都知道,计算机中是以二进制...小明最近在学c语言,熟悉了c语言中的各种进制转换问题,所以就尝试着各种进制转换的程序,现在他想写一个程序,把一个无符号数n,转化在b进制下的表示。例如:n为1
  • JAVA二进制基础

    2020-05-10 12:22:25
    二进制与进制转换 二进制常用的运算 : 按位与(&) 按位或(|) 异或运算(^) 取反运算(~) 左移运算(<...十进制转成十六进制 Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalStr
  • 跑偏的解法:考虑十进制转二进制的思路,通过除以2取余的思路,正数和0可以解决,负数是补码表示所以难以实现。 正确的解法:通过与运算(&)和无符号右移(>>>)运算来实现。注意不能是带符号的右移。...
  • 十进制小数转换成二进制, bit,Byte,WORD,DWORD的含义, 数据的原码,反码和补码及之间的相互换算以及使用反码的原因, 有符号数和无符号数的取值范围以及原因, 数值溢出的原因和后果
  • 输入一个整数,输出其十六进制表示的字符串。负数使用补码表示。 思路:用十进制的15(二进制的1111)作为掩码,获取最低的4位,直接...在右移位时,注意要转换成无符号整数,这样移位时才能补0,否则将添加符号位。
  • 1、把十进制数转换成二进制数 (1)在MATLAB中有一个函数dec2bin,可以把正整数转换为2进制 (2)对于负数有这样一个结论:N位二进制负数X的补码对应的无符号数为2N +X 例:有符号原码:1001 十进制为:-1  ...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 146
精华内容 58
关键字:

十进制转成无符号二进制