C语言-十进制转换为二进制函数

char * itobs(int num, char * str) {
    int i;
    static int size = 8 * sizeof(int);
    for (i = size - 1; i >= 0; i--, num >>= 1) {
        str[i] = (01 & num) + ‘0‘;
    }
    str[size] = ‘\0‘;
    return str;
}

注: char str[8 * sizeof(int) + 1]

参考自:C Primer Plus 第15章 位操作

时间: 2024-10-08 08:40:16

C语言-十进制转换为二进制函数的相关文章

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

package com.db2; /** * 将一个十进制转换为二进制,八进制,十六进制 * * @author denny * */ public class Demo2 { public static void main(String[] args) { toBin(6); toBin(-6); toOct(60); toOct(-60); toHex(60); toHex(-60); } // 转换2进制 public static void toBin(int num) { toTran

十进制转换为二进制序列,并输出1的个数,和序列的奇偶序列

★十进制转换为二进制序列,并输出1的个数,和序列的奇偶序列 #include<stdio.h> int main() { int m,i,x,y; char a[32];//int为4个字节长,占32个bit位 int count=0; printf("请输入一个数:\n"); scanf("%d", &m); for (i = 0; i < 32; i++) { if (m%2 == 1)         //统计序列中1的个数 { co

java中将十进制转换为二进制

public static void main(String[] args) { toBin(6); } /* 十进制转换为二进制 */ public static void toBin(int num) { while(num>0) { System.out.println(num%2); num=num/2; } } java中将十进制转换为二进制

十进制转换为二进制的方法

方法1 java.lang包里integer类下有一个方法 toBinaryString public static String toBinaryString(int i) 以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式. 如果参数为负,该无符号整数值为参数加上 232:否则等于该参数.将该值转换为二进制(基数 2)形式的无前导 0 的 ASCII 数字字符串.如果无符号数的大小为零,则用一个零字符 '0' ('\u0030') 表示它:否则,无符号数大小的表示形式中的第一

C语言 十进制转换二进制

十进制转换二进制主要采用的是连除倒取余的方法  代码如下 int num = 8; int tempArr[32]={0}; int i = 0; while (num / 2 != 1 ) { tempArr[i] = num % 2; num /=2; i++; } tempArr[i+1] = 1; for (int j = sizeof(tempArr)/sizeof(int)-1; j>=0; j--) { printf("%d", tempArr[j]); }

C语言之利用递归将十进制转换为二进制

#include<stdio.h>#include<stdlib.h>void change2(int num){  if (num == 0)   return;  else  {   change2(num / 2);   printf("%d", num % 2); //printf函数在change2函数后,为逆序打印!  }}void main(){  int num=0;  printf("请输入要转换的十进制数: ");  sc

用位运算实现十进制转换为二进制

代码如下: 1 #include <iostream> //将十进制数转化为二进制数,位运算的取位操作 2 using namespace std; 3 int main() 4 { 5 unsigned short i; 6 cout << "请输入一个小于65536的正整数" << endl; 7 cin >> i; 8 for(int j=15;j>=0;j--) 9 { 10 if ( i & ( 1 <<

选做题:两位十进制转换为二进制

#include<stdio.h> int main(void){ int i=0,n,a[32]; printf("请输入一个十进制整数:\n"); scanf("%d",&n); while(n>0) { a[i]=n%2; i=i+1; n=n/2; } printf("十进制整数转换为二进制数是:\n"); for(i--;i>=0;i--) printf("%d",a[i]); pri

将十进制转换为二进制和十六进制

#include<stdio.h>int main(){int a,i,j,m;int arr[16]={0};printf("输入一个整数:\n");scanf("%d",&a);printf("十六进制=%x\n",a);printf("八进制=%o\n",a);printf("二进制数为:\n");for(i=0;i<15;i++){m=a%2;j=a/2;a=j;arr[i