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

无符号整数转二进制逆序

image

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

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

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

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

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

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

  6. 返回生成的字符串

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

    代码如下

    /*******************************************************************
    *
    *	函数名称:	  Dec2OCT_reversed
    *	函数功能:   将八位无符号整数,逆序生成二进制字符串
    * 	函数参数:
    *  				@a :unsigned char num  无符号的整数
    *   返回结果:   
    * 	注意事项:   None
    * 	函数作者:  m17872844806@163.com
    *	创建日期:   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;  
    }  
    

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

    麻烦三连加关注!!!!

    比心

posted @ 2024-05-03 21:59  琨为玉也  阅读(111)  评论(0)    收藏  举报