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

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日

悬赏问题

  • ¥100 网页游戏在本地页面修改游戏结果
  • ¥30 comfyui openpose报错
  • ¥20 Wpf Datarid单元格闪烁效果的实现
  • ¥15 图像分割、图像边缘提取
  • ¥15 sqlserver执行存储过程报错
  • ¥100 nuxt、uniapp、ruoyi-vue 相关发布问题
  • ¥15 浮窗和全屏应用同时存在,全屏应用输入法无法弹出
  • ¥100 matlab2009 32位一直初始化
  • ¥15 Expected type 'str | PathLike[str]…… bytes' instead
  • ¥15 三极管电路求解,已知电阻电压和三级关放大倍数