C语言每日一题(4):打印二进制的奇数位和小数位

news2024/12/24 3:05:12

标头风景


  • 文章主题:打印二进制的奇数位和小数位🔥
  • 所属专栏:C语言每日一题📗
  • 作者简介:每天不定时更新C语言的小白一枚,记录分享自己每天的所思所想😄🎶
  • 个人主页:[₽]的个人主页🏄🌊

目录

  • 前言
    • 编程起因
    • 项目介绍
  • 设计思路
    • 1.整体逻辑
    • 2. 具体逻辑
  • 代码展示
  • 效果展现
  • 结语


前言

编程起因

最近刚学位操作符以及二进制码的相关知识,于是想出了打印二进制的奇数位和小数位这道题加深一下自己对于这方面的理解。

项目介绍

设计了一个打印二进制奇数位和偶数位数值功能的项目。


设计思路

1.整体逻辑

与原来设计Count_1()函数的原理相同,都是通过对数值二进制码的二进制位进行移动来达到最后一位变成想要判断的位置的目的,不同的是该函数虽然也是for()循环结构,但是是循环的变量始终都是针对原二进制码的,不随二进制码的每次移位而发生变化(当然如果设置循环次数还是32,第一位给到一个储存奇数位数组,第二位给到一个储存偶数位数组,再把它们分两行分别输出出来,也是可以做到这一点的,只不过这种做法会明显负杂得多)的for (int bits = 30; bits >= 0; bits -= 2)以及for (int bits = 31; bits >= 1; bits -= 2)结构,这里打破了一点思维定式,for()循环中的调整部分(第三项)可以不是自增或者自减符,只要是一个C语句就行,甚至可以是函数,其实初始化部分也是如此,唯独一定对应的只有判断部分,for()中的第一和最后一位的名字只不过是根据它们大部分情况下的作用所起的名字,实际上真正对应名字的只有第二位,本质上也就是for()和三语句只是控制了循环执行这三条语句的顺序而已,以及只给第二条语句增加了对应名字的每个循环都要有的判断条件的功能。

2. 具体逻辑

与代码展示中的逻辑相同这里不作过多解释


代码展示

#include <stdio.h>
int main()
{
	int num = 0;
	printf("Please enter a number:");
	scanf("%d", &num);
	printf("The binary sequence of odd digits in this number:\n");
	for (int bits = 30; bits >= 0; bits -= 2)//奇数位的打印(通过遍历不同的偶数形式
	                                         //的二进制位个数来使每一次该数对应的二
	                                         //进制码的最后一位都是奇数位的二进制位)
	{
		printf("%d ", (num >> bits) & 1);//先通过右移操作符让表达式产生一个移位后对
		                                 //应的二进制码,在和前文设计Count_1()函数
		                                 //一样的原理与1相交用十进制得出二进制码奇
		                                 //数位的数字(注意因为这里的移位个数是for循
		                                 //环中的变量值,所以是变动的而不是相等的,因
		                                 //每次的参考都是原始的二进制码,因此这里我们
		                                 //只能用表达式求每一次的位值但不能每次求时又
		                                 //把新的二进制码值赋还给num。
	}
	printf("\n");
	printf("The binary sequence of even digits in this number:\n");
	for (int bits = 31; bits >= 1; bits -= 2)//偶数位的打印(通过遍历不同的奇数形式
	                                         //的二进制位个数来使每一次该数对应的二
	                                         //进制码的最后一位都是偶数位的二进制位)
	{
		printf("%d ", (num >> bits) & 1);//与上文中奇数位的道理相同,只不过是移位的
		                                 //移位和对应最后一位是原始二进制码的奇偶数
		                                 //位这两者的奇偶性刚好对调而已
	}
	return 0;
}

效果展现

效果展现


结语

以上就是我对打印二进制的奇数位和小数位这个项目的解题思路和代码以及做好后效果的展示,作为刚学编程的小白,可能在一些设计逻辑方面有些不足,欢迎评论区进行指正!看都看到这了,点个小小的赞或者关注一下吧(当然三连也可以~),你的支持就是博主更新最大的动力!让我们一起成长,共同进步!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1038842.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

干洗店收银管理软件,洗鞋店收银系统干洗app

干洗店收银管理软件&#xff0c;洗鞋店收银系统干洗app&#xff0c;支持上门取衣服干洗&#xff0c;在手机上下单&#xff0c;预约合适的时间&#xff0c;就会有专员来上门取&#xff0c;当然&#xff0c;送衣服务也是有的&#xff0c;一些价格都标注清楚&#xff0c;有更多的参…

YOLOv5改进系列(24)——替换主干网络之MobileViTv3(移动端轻量化网络的进一步升级)

【YOLOv5改进系列】前期回顾: YOLOv5改进系列(0)——重要性能指标与训练结果评价及分析 YOLOv5改进系列(1)——添加SE注意力机制 YOLOv5改进系列(2)——添加CBAM注意力机制

Stellar Toolkit for MySQL 9.0 Crack 3in1

面向数据库管理员的 MySQL 工具包 Stellar Toolkit for MySQL是一款三合一软件套件&#xff0c;用于修复损坏的 MySQL 和 MariaDB 数据库、从 MySQL 数据库的 InnoDB 和 MyISAM 表恢复数据以及分析 MySQL 数据库日志文件。该软件还可以以最高的安全性和完整性相互转换 MySQL/Ma…

pycharm中配置torch

在控制台cmd中安装好torch后&#xff0c;在pycharm中使用torch&#xff0c;需要进行简单设置即可。 在pycharm中新建一个工程&#xff0c;在file文件中打开setting 在setting中找到project interpreter编译器 找到conda environment的环境配置&#xff0c;设置好相应的目录 新…

一些框架使用总结

一.力软 1. 菜单相关 1) 页面菜单配置 自己写的页面 都在 src/modules中&#xff0c;基本结构如下图&#xff0c;具体页面在 views 文件夹中 module.js中&#xff0c;code字段需要和文件夹名称对应起来 export default {name: 案例演示模块,code: demo,version: 1.0.0,desc…

外卖霸王餐小程序、H5、公众号版外卖系统源码

最新外卖霸王餐小程序、H5、微信公众号版外卖系统源码、霸王餐美团、饿了么系统&#xff0c;粉丝裂变玩源码下载&#xff0c;外卖cps小程序项目&#xff0c;外卖红包cps带好友返利佣金分销系统程序、饿了么美团联盟源码&#xff0c;外卖cps带分销返利后端源码&#xff0c;基于L…

短视频账号系统源码(saas开发型)

抖音账号|短视频矩阵分发系统 | 多账号管理发布 |MVC架 一、短视频矩阵分发系统是什么&#xff1f; 短视频矩阵分发系统是一种集多账号、平台管理和视频分发于一身的技术运营类saas工具。它可以帮助用户管理多个账号&#xff0c;并将短视频快速传播到这些账号所在的不同平台上…

四川眼科医院孙丰源教授团队为患者拔除1.4cm长“眼中钉”

在户外劳作进行一些危险性的操作时&#xff0c;如果不注意防护&#xff0c;就很容易造成一些意外事件发生。广元的张先生使用割草机除草时&#xff0c;被割草机断裂的锯片击伤了左眼&#xff0c;伤势严重&#xff0c;所幸在孙丰源教授团队的帮助下&#xff0c;及时获得了治疗&a…

【操作系统笔记十】缓存一致性

CPU 核心之间数据如何传播 高速缓存中的值被修改了&#xff0c;那么怎么同步到内存中呢&#xff1f; ① 写直达&#xff08;Write-Through&#xff09;② 写回&#xff08;Write-Back&#xff09; 写直达&#xff08;Write-Through&#xff09; 简单&#xff0c;但是很慢&am…

Zygote Secondary:加速应用启动的未来之路

Zygote Secondary&#xff1a;加速应用启动的未来之路 1. 引言 在现代的移动应用开发中&#xff0c;启动速度和响应性能是用户体验的重要方面。然而&#xff0c;传统的 Android 进程管理方式在启动应用时会出现性能瓶颈&#xff0c;导致启动时间过长和资源占用过多。为了解决…

【WSN】无线传感器网络模拟器研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

EFK代替ELK方案7.17.3

文章目录 一. 传统的ELK二. EFK2.1 安装elasticsearch2.2 服务端安装fileBeats2.2.1. 安装 该也没有必要安装docker,直接下载yum或官网jar包启动即可.2.2.2.编辑配置文件 filebeat-java-logback.yml2.2.3. es配置common_log_pipeline解析日志 三.启动测试-logback-spring.xml配…

JavaWeb 学习笔记 6:会话跟踪

JavaWeb 学习笔记 6&#xff1a;会话跟踪 HTTP 协议本身是无状态的&#xff0c;所以不能跟踪会话状态。所以会有额外的技术用于跟踪会话&#xff1a; Cookie&#xff0c;客户端技术Session&#xff0c;服务端技术 1.Cookie 1.1.写入 Cookie 可以在服务端通过HttpServletRe…

如何使用Spring Security进行身份验证和授权

当您构建一个基于 Spring 框架的 Web 应用程序时&#xff0c;安全性是至关重要的。Spring Security 是 Spring 生态系统中用于处理身份验证和授权的框架。它提供了一种简单而强大的方式来保护您的应用程序&#xff0c;确保只有授权用户才能访问敏感资源。本文将介绍如何使用 Sp…

云计算安全:保护数字资产的前沿策略

文章目录 1. 云计算安全威胁1.1 数据泄露1.2 身份认证问题1.3 无法预测的网络攻击1.4 集中攻击 2. 云计算安全最佳实践2.1 身份和访问管理&#xff08;IAM&#xff09;2.2 数据加密2.3 安全审计和监控2.4 多重身份验证&#xff08;MFA&#xff09; 3. 安全自动化3.1 基础设施即…

【初试433分】中科院859学姐经验分享

这个系列会邀请往届学长学姐进行经验分享~欢迎后台回复经验分享&#xff0c;进行投稿&#xff01; 经验贴征集&#xff1a;前人栽树&#xff0c;后人乘凉&#xff0c;上岸同学也是看着经验贴一点一点过来的&#xff0c;有偿征集各位同学的经验分享&#xff0c;以此来帮助更多的…

一百八十四、大数据离线数仓完整流程——步骤三、在Hive中建基础库维度表并加载MySQL中的维度表数据

一、目的 经过6个月的奋斗&#xff0c;项目的离线数仓部分终于可以上线了&#xff0c;因此整理一下离线数仓的整个流程&#xff0c;既是大家提供一个案例经验&#xff0c;也是对自己近半年的工作进行一个总结。 二、数仓实施步骤 &#xff08;三&#xff09;步骤三、在Hive中…

优化类问题概述

数学建模系列文章&#xff1a; 以下是个人在准备数模国赛时候的一些模型算法和代码整理&#xff0c;有空会不断更新内容&#xff1a; 评价模型&#xff08;一&#xff09;层次分析法&#xff08;AHP&#xff09;,熵权法&#xff0c;TOPSIS分析 及其对应 PYTHON 实现代码和例题…

JVM之选择合适的垃圾收集器(CMS、G1)

1.JVM内存模型&#xff0c;栈、本地方法栈、程序计数器、堆、元空间、方法区、本地方法区&#xff0c;除程序计数器外&#xff0c;其他区域都能进行垃圾收集 2.栈&#xff0c;它的生命周期与线程相同&#xff0c;线程私有&#xff0c;会使用操作系统原生内存&#xff0c;方法…