啦啦啦拉拉裤 2021-09-26 11:40 采纳率: 69.1%
浏览 80
已结题

C语言如何将相应的整数转换为二进制

请问这个要怎么解决?应该是 输入整数,返回相应的16 个字符。在“PUT YOUR CODE HERE”写内容,前面内容不要改动,(好像是在于char和int的转化,要按照原来的0/1把int16_t对应的位设置成0/1,在计算机中就是那一串二进制数了,print出来直接是所表示的十进制数。但这个是二进制转相应整数的思路,和这个不一样),蟹蟹大lao。题目如下

img

img

#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <assert.h>
#define N_BITS 16
char *sixteen_out(int16_t value);
int main(int argc, char *argv[]) {
    for (int arg = 1; arg < argc; arg++) {
        long l = strtol(argv[arg], NULL, 0);
        assert(l >= INT16_MIN && l <= INT16_MAX);
        int16_t value = l;
        char *bits = sixteen_out(value);
        printf("%s\n", bits);
        free(bits);
    }
    return 0;
}
// given a signed 16 bit integer
// return a null-terminated string of 16 binary digits ('1' and '0')
// storage for string is allocated using malloc
char *sixteen_out(int16_t value) {
    // PUT YOUR CODE HERE
}
 

  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2021-09-26 11:45
    关注
    char *sixteen_out(short int  value) 
    {
        char *p = new char[17];
        memset(p,'0',16);
        p[16] = 0;
        unsigned short int v = value;
        int i=15;
        do
        {
            p[i--] = v%2+'0';
            v/= 2;          
        }while(v>0);
        return p;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月4日
  • 已采纳回答 9月26日
  • 创建了问题 9月26日

悬赏问题

  • ¥15 wegame打不开英雄联盟
  • ¥15 公司的电脑,win10系统自带远程协助,访问家里个人电脑,提示出现内部错误,各种常规的设置都已经尝试,感觉公司对此功能进行了限制(我们是集团公司)
  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多