十进制字符串转化成二进制c语言实现带符号
以下是一个将有符号十进制字符串转换为二进制字符串的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;
}
该函数首先确定输入字符串的符号位,然后将其转换为整数。接着,将整数转换为二进制数,并将其存储在一个整型数组中。最后,将符号位和二进制数组拼接成一个字符串并返回
原文地址: https://www.cveoy.top/t/topic/dInQ 著作权归作者所有。请勿转载和采集!