首页 > 其他分享 >无符号整数转二进制字符串逆序输出

无符号整数转二进制字符串逆序输出

时间:2024-05-03 22:15:03浏览次数:13  
标签:遍历 符号 二进制 整数 char 字符串 逆序

无符号整数转二进制逆序

image

在C语言中,要实现一个函数来传入一个八位无符号整数,并返回其二进制倒序的字符串,你可以使用以下步骤:

  1. 分配足够的堆空间来存储倒序后的二进制字符串。

  2. 利用位运算符获取当成8位无符号整数的二进制数

  3. 可以从高位往遍历也可以从低位往高位遍历

  4. 从高遍历就把字符串从尾部开始插入,从低位遍历就把符串从头部开始插入

  5. 在字符串末尾插入‘\0’

  6. 返回生成的字符串

  7. 在主程序中释放堆空间

    代码如下

    /*******************************************************************
    *
    *	函数名称:	  Dec2OCT_reversed
    *	函数功能:   将八位无符号整数,逆序生成二进制字符串
    * 	函数参数:
    *  				@a :unsigned char num  无符号的整数
    *   返回结果:   
    * 	注意事项:   None
    * 	函数作者:  [email protected]
    *	创建日期:   2024/05/03
    *	修改历史:
    *	函数版本:	V1.0
    * *****************************************************************/ 
    char* Dec2OCT_reversed(unsigned char num) {  
        // 由于字符串是遍历到'\0'才停止所以要申请除8位二进制还需多一位 '\0'
        char *binary = (char *)malloc(9 * sizeof(char));  
        if (binary == NULL) {  
            // 内存分配失败处理  
            perror("Memory allocation failed");  
            exit(EXIT_FAILURE);  
        } 
      
        // 遍历8位,将每一位转换为字符并存储到字符串中  
        for (int i = 0; i <= 7; i++) {  
            // 将低位的二进制字符串依次插入从数组头部开始插入 
            binary[i] = (num & (0x80>>7-i)) ? '1' : '0';
              
        }  
      
        // 末尾添加字符串结束符  
        binary[8] = '\0';  
      
        // 返回生成的字符串  
        return binary;  
    }  
    

    如果该函数接口代码有什么问题,请将问题发至网易邮箱 [email protected],作者将及时改正,欢迎与各位老爷交流讨论。

    麻烦三连加关注!!!!

    比心

标签:遍历,符号,二进制,整数,char,字符串,逆序
From: https://www.cnblogs.com/zkbklink/p/18171707

相关文章

  • python教程3.1:数据类型:字符串+列表list
    一、字符串字符串是⼀个有序的字符的集合,⽤于在计算机⾥存储和表示⽂本信息 常用操作二、列表list[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表⼀个元素特征 1、增加操作   追加,数据会追加到尾部 2、删除操作3、修改操作 4、查找操作 如果......
  • 字符串基础(hash,KMP,AC自动机,trie)
    trie树trie树,又叫字典树,就是把字符串的每个字母看做树上的一个节点,若干个字符串组成了一棵trie树。最一般的trie树好像只能搜索字符串,重点是01trie和可持久化trie树和用trie树来建ac自动机(详见AC自动机)。这里着重介绍一下01trie01trie,就是节点代表了数上的二进制位上的数。......
  • 高效遍历:C++中分隔字符串单词的3种方法详解与实例
     概述:在C++中,遍历由空格分隔的字符串的单词有多种方法,包括使用`std::istringstream`、手动遍历字符和正则表达式。其中,`std::istringstream`是简单高效的选择,通过流提取单词。手动遍历字符较为繁琐,正则表达式方法更灵活但可能有性能开销。根据实际需求选择方法,本文提供了清晰......
  • cpp字符串相关
    字符串相关文章参考:[详解-字符串]C++必知必会字符串-string常用各种操作解析-知乎(zhihu.com)C++字符串(string)常用操作总结-知乎(zhihu.com)c++读取字符串和字符的6种函数_c++获取字符串的每个字符-CSDN博客头文件#include<string>定义字符串stringstr;初始......
  • 枚举范围内的字符串
    我写的:publicintVowelStrings(string[]words,intleft,intright){strings="aeiou";intk=0;for(inti=left;i<=right;i++){intx=0,y=0;stringword=words[i];intwordLong......
  • mORMot 1.18 第12章 Blobs(大二进制对象)
    mORMot1.18第12章Blobs(大二进制对象)有些情况下,mORMot会以BLOBs(大二进制对象)的形式保存和检索数据。TSQLRawBlob属性用于存储像图片和文件这样的二进制数据。以TDynArray.SaveTo二进制格式存储的动态数组。明确注册为BLOBs的记录。当从数据库中存储/检索时,BLOBs以Base64......
  • 模拟集成电路设计系列博客——6.2.1 二进制权重电阻转换器
    6.2.1二进制权重电阻转换器一种主流的实现D/A转换器的方式是将一组信号以二进制方式进行组合。这组二进制信号可以是电流(在电阻或者电流方式中),但二进制权重的电荷也经常使用。在这个章节中,将首先介绍店主方式,然后是和电荷重分布的模式和电流模式。在这个远离下并不能保证单调性,......
  • C语言程序设计——字符串典型题练习
    1、计算一个字符串中最大的重复子串的字符的数量/********************************************************************* name : CalSubStrMaxCnt* function:计算一个字符串中最大的重复子串的字符的数量* argument:* @str:需要查找的字符串的地址* * ret......
  • uboot: 制作环境变量的二进制文件
    依赖项uboot需要设置相关配置,比如存储的地址,大小,存储介质等等,一般是使用文件env.bin烧写到flash的某一段固定区域。#defineCONFIG_ENV_IS_IN_MMC#defineCONFIG_SYS_MMC_ENV_DEV0#defineCONFIG_ENV_OFFSET(0x2E0200)#defineCONFIG_ENV_SIZE(0x4000)/*envsize*/......
  • 使用g开头的数组字符串的解析
    在做ofd的文件解析的时候,会遇到带有这种描述的数组"g22.03g31.20.2"。这个字符串通过空格进行分割得到一个["g",2,2.0,3,"g",3,1.2,0.2]这样的数组数据。这个是以g表示一个数组的开头,包含了2个元素,每个元素都是2.0的数组。整个字符串翻译成一个完整的数组就是这样......