以下是一个将有符号十进制字符串转换为二进制字符串的C语言函数:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void decimalToBinary(char* decimalStr, char* binaryStr) {
    // 确定符号位
    int isNegative = 0;
    if (decimalStr[0] == '-') {
        isNegative = 1;
        decimalStr++;
    }

    // 将十进制字符串转换为整数
    int decimalNum = 0;
    int len = strlen(decimalStr);
    for (int i = 0; i < len; i++) {
        decimalNum = decimalNum * 10 + (decimalStr[i] - '0');
    }

    // 将整数转换为二进制字符串
    int binaryNum[32];
    int index = 0;
    while (decimalNum > 0) {
        binaryNum[index] = decimalNum % 2;
        decimalNum /= 2;
        index++;
    }

    // 拼接二进制字符串
    if (isNegative) {
        binaryStr[0] = '1';
        for (int i = 1; i <= index; i++) {
            binaryStr[i] = binaryNum[index - i] + '0';
        }
    } else {
        binaryStr[0] = '0';
        for (int i = 1; i <= index; i++) {
            binaryStr[i] = binaryNum[index - i] + '0';
        }
    }
    binaryStr[index + 1] = '\0';
}

int main() {
    char decimalStr[] = "-123";
    char binaryStr[33];
    decimalToBinary(decimalStr, binaryStr);
    printf("%s\n", binaryStr);
    return 0;
}

该函数首先确定输入字符串的符号位,然后将其转换为整数。接着,将整数转换为二进制数,并将其存储在一个整型数组中。最后,将符号位和二进制数组拼接成一个字符串并返回

十进制字符串转化成二进制c语言实现带符号

原文地址: https://www.cveoy.top/t/topic/dInQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录