二进制to十六进制

 输入小于等于十六位的二进制数据,输出十六进制数据;

#include <stdio.h>
#include <stdlib.h>
#include <math.h>int main(void) {char arr[16] = { 0 }; int array[16] = { 0 }; int hex[4] = { 0 };int i = 0; int  num = 0;scanf("%s", arr);printf("%s\n", arr);while (arr[i] != '\0'){i++;}printf("%d\n", i);        //arr[16]={'1','0','0','1','1','0','\0', , , ... , , , }int len = 16 - i;for (int k = i; k >= 0; k--)                 //往后移 arr[16]={'\0', '\0',  ... ,'\0' ,'\0' ,'1','0','0','1','1','0', }{                                    arr[k + len] = arr[k];}                                                           //arr[15-i]for (int d = 0; d < len; d++)         //前面的填充为'0'{                                            arr[d] = '0';}for (int j = 0; j < 16; j++) {array[j] = arr[j] - '0';}for (int s = 0; s < 16; s++)    //array[16]={0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1}{                   printf("array[s]=%d\n", array[s]);}for (int c = 15; c >= 0; c--) {int l = 0;if (array[c] != 0) {l = 15 - c; int x = 0;if (l < 4) {x = l % 4;hex[0] = hex[0] + pow(2, x);}if (l >= 4 && l < 8) {x = (l - 4) % 8;hex[1] = hex[1] + pow(2, x);}if (l >= 8 && l < 12) {x = (l - 8) % 12;hex[2] = hex[2] + pow(2, x);}if (l >= 12 && l < 16) {x = (l - 12) % 16;hex[3] = hex[3] + pow(2, x);}}}char ar[16] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' };printf("16radix:%c%c%c%c", ar[hex[3]], ar[hex[2]], ar[hex[1]], ar[hex[0]]);return 0;
}

生成十六进制的部分有点绕,所以写了个新的,空了补上算法的思路.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>int main(void) {char arr[16] = { 0 }; int array[16] = { 0 },array_new[16]={0};int hex[4] = { 0 };int i = 0; scanf("%s", arr);printf("输入为:%s\n", arr);         //假设输入为:arr[16]={'1','1','0','1','1','0','\0', , , ... , , , }while (arr[i] != '\0'){i++;}printf("输入位数=%d\n", i);        int len = 16 - i;for (int k = i; k >= 0; k--)                 //往后移 arr[16]={'\0', '\0',  ... ,'\0' ,'\0' ,'1','1','0','1','1','0','0' }{                                    arr[k + len] = arr[k];}                                                           //arr[15-i]for (int d = 0; d < len; d++)         //前面的填充为'0'{                                            arr[d] = '0';}for (int j = 0; j < 16; j++) {array[j] = arr[j] - '0';         //char数字 to int数字; }for(int i=0;i<16;i++)              //array_new[16]={0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0}{         array_new[i]=array[15-i];}  for(int k=0;k<16;k++)       //倒序生成array_new;{if((k<4)&&(array_new[k]==1)){hex[3]=hex[3]+pow(2,k);}if(((k>=4)&&(k<8))&&(array_new[k]==1)){hex[2]=hex[2]+pow(2,k-4);}if(((k>=8)&&(k<12))&&(array_new[k]==1)){hex[1]=hex[1]+pow(2,k-8);}if(((k>=12)&&(k<16))&&(array_new[k]==1)){hex[0]=hex[0]+pow(2,k-12);}}printf("\n");char ar[16] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' };printf("16radix:%c%c%c%c", ar[hex[3]], ar[hex[2]], ar[hex[1]], ar[hex[0]]);return 0;
}

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

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

相关文章

AcWing 1250. 格子游戏(并查集)

题目链接 活动 - AcWing本课程系统讲解常用算法与数据结构的应用方式与技巧。https://www.acwing.com/problem/content/1252/ 题解 当两个点已经是在同一个连通块中&#xff0c;再连一条边&#xff0c;就围成一个封闭的圈。一般用x * n y的形式将&#xff08;x, y&#xff0…

CentOS 防火墙管理及使用的redis基本常用命令

文章目录 防火墙管理使用systemctl管理防火墙启动、关闭使用firewalld-cmd配置访问防火墙策略firewalld配置文件修改限制来源IP docker使用 redis 防火墙管理 需要关闭防火墙或者开启对应端口 使用systemctl管理防火墙启动、关闭 启动防火墙&#xff1a; systemctl start fi…

设计模式——桥接模式(结构型)

引言 桥接模式是一种结构型设计模式&#xff0c; 可将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构&#xff0c; 从而能在开发时分别使用。 问题 抽象&#xff1f; 实现&#xff1f; 听上去挺吓人&#xff1f; 让我们慢慢来&#xff0c; 先考虑一个简单的…

物联网智能仓库解决方案

物联网智能仓库解决方案是一种基于物联网技术的仓库管理系统&#xff0c;通过自动化设备、智能化管理系统和大数据分析等技术&#xff0c;实现仓库的智能化运营和管理。 物联网智能仓库解决方案包括&#xff1a; 仓库设备自动化&#xff1a;通过自动化设备和技术&#xff0c;实…

18--日志(了解)

1、日志 1.1 什么是日志 日志用来记录用户操作、系统运行状态等&#xff0c;是一个系统的重要组成部分。对于一些简单的小程序&#xff0c;可能并不需要在如何记录日志的问题上花费太多精力。但是对于作为基础平台为很多产品提供服务的后端程序&#xff0c;就必须要考虑如何依…

KVM虚拟机console使用

注意这些设置都在你要进入虚拟机里设置&#xff0c;不是在你的物理机设置 首先debian12 需要设置 grep ttyS0 /etc/securetty #没有则加上 echo ttyS0 >> /etc/securetty #启动 systemctl start serial-gettyttyS0 systemctl enable serial-gettyttyS0#CentOS Stream …

Springboot+vue的公寓报修管理系统(有报告)。Javaee项目,springboot vue前后端分离项目

演示视频&#xff1a; Springbootvue的公寓报修管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的前后端分离的公寓报修管理系统&#xff0c;采用M&#xff08;model&…

Winform高效获取控件(Control)方法 + 源码分析

背景&#xff1a;风好大&#xff0c;睡觉有点怕&#xff0c;起床敲代码了 之前学的都是都是通过遍历控件&#xff08;Controls&#xff09;&#xff0c;判断控件名是否相等来获取Control 其实直接通过:Controls["控件名"]&#xff0c;就可以获得需要的控件 为什么呢…

Unity中 URP Shader 常量缓冲区CBUFFER

文章目录 前言一、常量缓冲区CBUFFER 使用步骤1、在属性面版定义我们需要使用的属性2、在Pass中&#xff0c;使用前需要提前声明3、使用时&#xff0c;直接使用即可 二、使用 常量缓冲区CBUFFER 的好处三、ShaderGraph属性 和 对应Shader的功能1、我们创建一个颜色属性2、使用&…

Bash 操作审计和安全加固 —— 筑梦之路

bash 记录 配置环境变量&#xff1a;/etc/profile export HISTTIMEFORMAT"%F %T "export HISTORY_FILE/var/log/history/bash_history.logexport PROMPT_COMMAND{ thisHistIDhistory 1|awk "{print \\$1}";lastCommandhistory 1| awk "{\\$1\"…

nodejs+vue+微信小程序+python+PHP全国天气可视化分析系统-计算机毕业设计推荐

3.2.1前台用户功能 前台用户可分为未注册用户需求和以注册用户需求。 未注册用户的功能如下&#xff1a; 注册账号&#xff1a;用户填写个人信息&#xff0c;并验证手机号码。 浏览天气资讯&#xff1a;用户可以浏览天气资讯信息详情。 已注册用户的功能如下&#xff1a; 登录&…

壹[1],函数:ReadImage

C形式 LIntExport void ReadImage( HObject* Image, const HTuple& FileName); //参数1&#xff1a;读取的Image //参数2&#xff1a;图片地址//备注说明&#xff1a; //头文件&#xff1a;halconcpp/HOperatorSet.h //命名空间&#xff1a;namespace HalconCpp C#形式 …

Android画布Canvas绘图scale translate,Kotlin

Android画布Canvas绘图scale & translate&#xff0c;Kotlin <?xml version"1.0" encoding"utf-8"?> <androidx.appcompat.widget.LinearLayoutCompat xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"…

Ubunutu18.04 ROS melodic 无人机 XTDrone PX4 仿真平台配置

一、依赖安装 sudo apt install ninja-build exiftool ninja-build protobuf-compiler libeigen3-dev genromfs xmlstarlet libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev python-pip python3-pip gawk pip2 install pandas jinja2 pyserial cerberus pyulog0.7.0 n…

VG3225EFN压控晶体振荡器(VCXO)

5G脞2020年开始&#xff0c;商业服务正在全球范围内快速部署。5G通信网络需要保持高速率和可靠性&#xff0c;这2两者都需要低噪声&#xff0c;使用高频基模晶体振荡器&#xff08;高达50MHz&#xff09;&#xff0c;该晶体振荡器可以提供低相位噪声参考时钟&#xff0c;从而降…

【数据结构和算法】判断子序列

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 方法一&#xff1a;双指针 三、代码 3.1 方法一&#xff1a;双指针 3.1.1 Java易懂版&#xff1a;…

浅析LDPC软解码对SSD延迟的影响--part2

2.LDPC&#xff08;Low Density Parity Check&#xff09;纠错码 LDPC码是一种基于稀疏矩阵的纠错码&#xff0c;它由一组奇偶校验方程组成&#xff0c;其中大部分元素为零&#xff0c;因此得名“低密度”。LDPC码的优点是可以有效地纠正大量的错误&#xff0c;尤其是对于高密…

Qt点击子窗口时父窗口标题栏高亮设计思路

父窗口调用findChildren得到其子孙窗口的列表&#xff0c;列表元素统一为QWidget*&#xff0c;遍历列表元素&#xff0c;每个元素调用installEventFilter&#xff0c;过滤QEvent::FocusIn和QEvent::FocusOut事件&#xff0c;做相应处理即可&#xff1a; QWidget* parent; QLis…

net::ERR_CERT_AUTHORITY_INVALID

接口请求报错&#xff1a;net::ERR_CERT_AUTHORITY_INVALID 浏览器遇到这种不安全的证书会自动拦截&#xff0c;导致数据无法获取 问题分析 翻译一下&#xff1a; 其实从字面意思就可以指定报错原因了&#xff1a;https的ssl证书有问题。 解决办法 临时解决办法 我们可以…

Docker Swarm编排:构建简单集群

Docker Swarm 是 Docker 官方提供的容器编排工具&#xff0c;通过它可以轻松构建和管理多个 Docker 容器的集群。本文将深入探讨 Docker Swarm 的基础概念、构建集群的步骤&#xff0c;并提供更为丰富和实际的示例代码&#xff0c;帮助大家全面了解如何使用 Docker Swarm 搭建一…