C语言十进制转换为八位二进制

要求输入一个小于256的十进制整数,要将其转换为一个必须有八位数字的二进制数

img


#include <stdio.h>
 
int binaryNum[16];  //存放转换后得到的二进制码
int count=0//计数十进制整数被2除的次数
int oneCount=0//得到的二进制码中1的个数
 
void main(){
  int num;
  printf("输入一个十进制的整数:");
  scanf("%d",&num); 
     
  while( (num/2) != 1 ){  //判断条件为:除以2之后的商不等于1
    binaryNum[count] = num%2//取余后的数字存入数组
    num /= 2//num = num/2; 进行下一轮的判断
    count++;  //此变量用来指定数组下标
  }
  binaryNum[count+1] = 1//最后一次除法做完以后,剩下的商一定是1,所以在最后手动添加一个1
 
  printf("二进制数值为:");
  //倒序打印出数组中的元素
  // sizeof(整形数组)/sizeof(整形单个元素大小) = 数组的元素个数
  for( int i=sizeof(binaryNum)/sizeof(int)-1; i>=0; i-- ){
    if( binaryNum[i] == 1)
      oneCount++;  //出现一次1就累加
    printf("%d",binaryNum[i]);
  }
  printf("\n",oneCount);
}

#include<iostream>
using namespace std;

int main() {
    int i = 0, n, a[8];
    cout << "请输入一个十进制整数:" << endl; 
    cin >> n;
    
    while (n > 0) { //循环过程的始终,判断n是否能被2除尽 
        a[i] = n % 2; //用数组存储每次除以2之后的余数,即断定奇偶性,对应二进制位上数值 
        i = i + 1;
        n = n / 2;
    }
    
    printf("十进制整数转换为二进制数是:\n");
    
    for(int j = 8 - i; j > 0; j--) cout << 0;
    for(; i > 0; i--) cout << a[i - 1];
    
    return 0;
}