精华内容
下载资源
问答
  • C语言函数实现任意一个整数转换为二进制
    千次阅读
    2020-12-03 00:09:28

    下面以15为例子输出1111

    #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    void decToBin(int n)//输入一个数15
    {
    	int result = 0;//结果
    	 int k = 1;
    	 int i = 0;
    	 while(n)//除到0就停止
    	 {
    		 i = n % 2;					//余数i=1	//i=1		//i=1			//i=1
    		result = k * i + result;	//result=1	//result=11	//result=111	//result=1111
    		k = k * 10;					//k=10		//k=100		//k=1000
    		n = n / 2;					//n=7		//n=3		//n=1			//n=0退出
    	 }
    	 printf("%d \n",result);//1111
    }
    
    int main() {
    	int n;
    	scanf("%d", &n);
    	decToBin(n);
    	}
    
    更多相关内容
  • vb题将十进制正整数转换为二进制.txt
  • 例子: int2bin([2; 5; 15])= [0 0 1 0; 0 1 0 1; 1 1 1 1] 或者bin2int([0 1 1; 2 2 2],3)= [4; 26](在三位数系统中)
  • 整数转换为二进制

    千次阅读 2020-04-16 21:37:41
    二进制中1的个数 时,遇到该基础问题,故整理...1、正整数二进制 除2之后将余数倒序排列 2、负整数二进制 1)得到取绝对值的整数二进制。如-201,先得到201的二进制1001001 2)取反。得0110110 ...

    刷  二进制中1的个数  时,遇到该基础问题,故整理一下。

    感谢参考链接:https://jingyan.baidu.com/article/84b4f565cf33fe60f6da321b.html

    1、正整数转二进制

      除2之后将余数倒序排列, 直到商小于1

    201 / 2 = 100······1

    100 / 2 = 50  ······0

    50 / 2 = 25    ······0

    25 / 2 = 12    ······1

    12 / 2 = 6      ······0

    6 / 2 = 3        ······0

    3 / 2 = 1        ······1

    1 / 2 = 0        ······1    (商小于1,结束计算并将余数倒序排列)

    得到:201(十进制) = 11001001(二进制)

    2、负整数转二进制

    1)得到取绝对值的整数的二进制。 如 -201,先得到201的二进制11001001

    2)取反。得00110110

    3)加1。  得00110111

    3、小数部分转二进制

    1)小数部分乘2后将整数部分顺序排列。 如0.125,整数部分顺序排列得001

    2)前面加0.       得0.001

    题外话:

    回到前面所说的二进制中1的个数。

    由于计算机存储数据用的是补码。首位是符号位。

    为什么这么存储呢?参考 https://www.cnblogs.com/spring-hailong/p/6071245.html

    所以就会出现对负数右移(eg: n = n>>1),因为最高位补1,一直循环的情况。

    参考  https://www.cnblogs.com/kaituorensheng/p/3642116.html

    所以才会有人在右移前要判断是否为负,负数通过 n & 0x7FFFFFFF 将符号位改为0。

    得到题解:

    class Solution {
    public:
         int  NumberOf1(int n) {
             int count = 0;
             if(n < 0){
                 n = n & 0x7FFFFFFF;
                 ++count;
             }
             while(n != 0){
                 count += n & 1;
                 n = n >> 1;
             }
             return count;
         }
    };

    当然也可以用 n= n>>>1,无视符号位右移,避免判断。

    但一山更比一山高,有更聪明的人提出左移不就好了。

    计算机中二进制左移末尾补0,最后会出现0的情况,这样就不会有上述死循环的问题了,便得到题解

    private static int NumberOf1_low(int n) {
            int count = 0;
            int flag = 1;
            while (flag != 0) {
                if ((n & flag) != 0) {
                    count++;
                }
                flag = flag << 1;
            }
            return count;
        }

    最高级的就是下面这种了

    //把一个整数减去1,再和原整数做与运算,会把该整数最右边一个1变成0.
    int  NumberOf1(int n) {
        int count=0;
        while(n){
             count++;
             n=n&(n-1);
         }
         return count;
    }

    以上代码来自牛客网大佬

    展开全文
  • java代码-2.任意给出一个十进制整数,将十进制整数转换为二进制数。
  • java代码-任意给出一个十进制整数,将十进制整数转换为二进制
  • 其实只要我们理解了十进制整数转化为二进制的方法,那么相对大数来讲,思路还是一样的。 #include <stdio.h> #include <string.h> int main(){ char m[32]; int len; while(scanf("%s",&m)!=EOF)...

    相信一般整数的进制转换大家都会,那么大整数数转换为二进制怎么去做呢?根本存不下,只能用字符串来表示。

    其实只要我们理解了十进制整数转化为二进制的方法,那么相对大数来讲,思路还是一样的。

    #include <stdio.h>
    #include <string.h>
    int main(){
    	char m[32];
    	int len;
    	while(scanf("%s",&m)!=EOF){
    		len=strlen(m);
    		int sum=1,size=0; 
    		char n[100]; 
    		while(sum){
    			sum=0;
    			for(int i=0;i<len;i++){
    				int x=m[i]-'0';
    				int d=x/2;
    				sum+=d;
    				if(i<len-1){
    					m[i+1]=x%2*10+m[i+1];
    				}
    				if(i==len-1){
    					n[size++]=x%2+'0'; 
    				}
    				m[i]=d+'0';
    			}
    			
    		}
    		for(int i=size-1;i>=0;i--){
    			printf("%c",n[i]);
    		}
    		printf("\n");
    	}
    	return 0;
    }
    
    展开全文
  • java代码-任意给出一个十进制整数,将十进制整数转换为二进制数。
  • hadoop2面试题 - 将一个长度超过100位数字的十进制非负整数转换为二进制数(大数据处理).pdf
  • java代码-求任意给出一个十进制整数,将十进制整数转换为二进制数。
  • 下面小编就大家带来一篇C++中几种将整数转换二进制输出的方法总结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 整数转换为二进制

    千次阅读 2019-01-07 20:17:12
    * 将整数转换二进制 * @author hasee * */ public class TenToTwo { public static void main(String [] args) { Scanner input = new Scanner(System.in); System.out.println("请...
    import java.util.Scanner;
    
    /**
     * 将整数转换成二进制
     * @author hasee
     *
     */
    public class TenToTwo {
    	public static void main(String [] args) {
    		Scanner input = new Scanner(System.in);
    		System.out.println("请输入一个整数(系统将转成二进制):");
    		int num = input.nextInt();
    		//调用方法直接生成
    		System.out.println("调用API-->"+Integer.toBinaryString(num));
    		method(num);
    	}
     	//自定义算法
    	private static void method(int num) {
    		if(num == 1 || num == 0) {
    			System.out.print(num);
    		}else{
    			method(num/2);
    			System.out.print(num%2);
    		}
    		
    	}
    }
    

    在这里插入图片描述

    展开全文
  • 具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,一直进行,直到商为小于1时为止,然后把得到的余数倒序排列。 #include <stdio.h> int main() { int i = 0, ...
  • 整数转化为二进制原码 function y = dec2yuanma(x,N) %1<=N<=53 y=zeros(N,length(x)); for i=1:length(x) if x(i)<0 x(i)=2.^(N-1)-x(i); end d=flip(dec2bin(x(i))); b=zeros(N,1);
  • 十进制整数转化为二进制详解

    万次阅读 多人点赞 2017-04-02 20:26:49
    要想编写十进制转化二进制的带码首先要清楚十进制转化二进制的算法,下面我们从两个方面实现这个转化: 1.按照十进制转化成十进制的常规算法实现: 废话不多说直接上图:
  • 博文链接:https://baby69yy2000.iteye.com/blog/173051
  • #include "stdio.h"void decToBin();int main(){ decToBin(1024);}void decToBin(int n) { int len = sizeof(n) * 8; int temp; //进行循环取出每一位 for (int i = 0; i&lt;len;...
  • num = eval(input('请输入数字:')) print('对应的二进制数:{0:b}\n八进制数:{0:o}\n十六进制数: {0:X}'.format(num))
  • 一:目的将十进制整数转化为二进制与十六进制输出。二:技术。1.利用for循环和数组知识将十进制转化为二进制输出。图片发自简书App2.利用for循环和数组知识将十进制转化十六进制输出。图片发自简书App3.数组的定义,...
  • 整数转化为二进制

    千次阅读 2019-10-31 21:37:20
    问题(1.1.9):将正整数N用二进制表示,并转换为一个String类型的值s 【数学方法】 import java.util.*; public class NumTest { public static void main(String[] args) { System.out.println("输入要求的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 310,941
精华内容 124,376
关键字:

整数转化为二进制

友情链接: cuda-sha512.zip