输入正整数 转化为 二进制数输出

简介: 输入正整数 转化为 二进制数输出

输入正整数 转化为 二进制数输出



一.通过 移位操作符

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main() {
  int x;//输入x
  printf("请输入需要转换的数:>\n");
  scanf("%d", &x);
  int i;
  printf("打印二进制:");
  for (i = 30; i >= 0; i--) {
    printf("%d", (x >> i) & 1);//使用移位操作符
  }
}

结果



二.通过算术的方法


二进制数字 非0即1

b[i]=a%2 (得到的数都小于2,若等于2,则能被2整除)

a=a/2

数学点: a%n就能得到小于n的余数,即0~n-1
(若a=n,则可被n整除得1)

1. 这是打印出完整二进制数的版本

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//定义转换函数
void convert(int a) {
  int i;
  int b[32];//定义数组b存放余数
  for (i = 0; i < 31; i++) {
    b[i] = 0;
  }
  for (i = 0; i < 31; i++) {
    b[i] = a % 2;
    a = a / 2;
    if (0 == a) {
      break;
    }
  }
  printf("The converted number:");
  for (i = 30; i >= 0; i--) {  //倒序输出
    printf("%d", b[i]);
  }
  printf("\n");
  return;
}
int main() {
  int x;//输入x
  printf("请输入需要转换的数:>\n");
  scanf("%d", &x);
  convert(x);//调用转换函数
  return 0;
}


结果

完整二进制位数版本




而让b[i]都初始化3 通过if语句识别辨别出非有效位数 并不打印

2. 仅打印出有效二进制位数版本

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//定义转换函数
void convert(int a) {
  int i;
  int b[32];//定义数组b存放余数
  for (i = 0; i < 31; i++) {
    //b[i] = 0;
    b[i] = 3;//初始化数组每个数都为3 (除0和1外的都可以)
  }
  for (i = 0; i < 31; i++) {
    b[i] = a % 2;
    a = a / 2;
    if (0 == a) {
      break;
    }
  }
  printf("The converted number:");
  for (i = 30; i >= 0; i--) {  //倒序输出
    if (b[i] == 3)   //仅输出有效二进制位数版本
      continue;
    else 
    printf("%d", b[i]);
  }
  printf("\n");
  return;
}
int main() {
  int x;//输入x
  printf("请输入需要转换的数:>\n");
  scanf("%d", &x);
  convert(x);//调用转换函数
  return 0;
}

结果




注意:要储存余数的数组进行元素初始化,否则未存入取余的数的部分都是原内存存放的随机数

目录
相关文章
|
存储 消息中间件 运维
Kubernetes中部署ELK Stack日志收集平台(上)
Kubernetes中部署ELK Stack日志收集平台
Kubernetes中部署ELK Stack日志收集平台(上)
|
关系型数据库 MySQL C++
|
存储 数据安全/隐私保护
忘记被浏览器记住的密码如何找回,如何查看浏览器保存的密码?
现在很多网站都需要注册账号和密码,由于数量众多,每个网站的账号不通用,所有我们经常会用浏览器记录密码功能记住密码,但时间一长就会忘记密码,想换个浏览器登陆或其他原因无法直接查看到密码,下面有2种查看密码的方法仅供参考。
忘记被浏览器记住的密码如何找回,如何查看浏览器保存的密码?
|
5月前
|
存储 安全 网络协议
阿里云服务器通用型实例怎么选?g7/g8y/g8i适用场景、性能对比与选择参考
在选择云服务器实例规格时,对于需要平衡计算、存储和网络性能的应用场景来说,一般会选择通用型实例规格,在阿里云目前的活动中,属于通用型实例的主要有通用型g7、通用型g8y和通用型g8i实例。为了帮助大家更好地了解这三款实例的区别,并为选择提供参考,本文将详细对比它们的实例规格、CPU、内存、计算、存储、网络等方面的性能,并附上活动价格对比,以便用户能够全面了解它们之间的不同,以作参考选择。
230 14
|
12月前
|
定位技术 Python
Matplotlib 教程 之 Matplotlib imshow() 方法 1
《Matplotlib imshow() 方法教程》:本文介绍 Matplotlib 库中的 imshow() 函数,该函数常用于绘制二维灰度或彩色图像,也可用于展示矩阵、热力图等。文中详细解释了其语法及参数,例如颜色映射(cmap)、归一化(norm)等,并通过实例演示了如何使用 imshow() 显示灰度图像。
280 2
|
10月前
|
API 容器
【HarmonyOS Next开发】Navigation使用
Navigation是路由容器组件,包括单栏(Stack)、分栏(Split)和自适应(Auto)三种显示模式。适用于模块内和跨模块的路由切换。 在页面跳转时,应该使用页面路由router,在页面内的页面跳转时,建议使用Navigation达到更好的转场动效场景。
407 8
【HarmonyOS Next开发】Navigation使用
|
12月前
|
算法 5G 数据安全/隐私保护
MIMO系统中差分空间调制解调matlab误码率仿真
本项目展示了一种基于Matlab 2022a的差分空间调制(Differential Space Modulation, DMS)算法。DMS是一种应用于MIMO通信系统的信号传输技术,通过空间域的不同天线传输符号序列,并利用差分编码进行解调。项目包括算法运行效果图预览、核心代码及详细中文注释、理论概述等内容。在发送端,每次仅激活一个天线发送符号;在接收端,通过差分解调估计符号和天线选择。DMS在快速衰落信道中表现出色,尤其适用于高速移动和卫星通信系统。
|
12月前
|
弹性计算 缓存 搜索推荐
大数据个性化推荐,AWS终端用户解决方案
大数据个性化推荐,AWS终端用户解决方案
|
SQL 关系型数据库 MySQL
一文搞懂数据库中的“锁”(图文详解)
数据库锁机制包括全局锁、表级锁和行级锁,用于管理并发访问数据时的一致性和有效性。全局锁锁定整个数据库实例,确保数据备份时的一致性,但可能导致长时间业务停摆。表级锁分为读锁和写锁,读锁允许多个并发读,写锁阻止其他读写。元数据锁(MDL)自动控制,防止DML和DDL冲突。行级锁是最细粒度的锁,分共享锁(读)和排他锁(写),防止行级别的并发冲突。InnoDB还使用意向锁和间隙锁/临键锁防止幻读,提高并发性能。
2866 2
一文搞懂数据库中的“锁”(图文详解)