10 진수에서 2 진수로 변환하는 프로그램을 만들려고했는데 문제가 있습니다. 내가 가지고있는 것을보고 올바른 방향으로 발을 내주고, 프로그램은 컴파일하지만 음수를 반환합니다. 현재 디버깅 중이지만 컴파일러가 num
변수에 도달하자마자 음수로 나타납니다.C++ 단순 이진수에서 10 진수로 변환
#include <iostream>
using namespace std;
int hexConvert(int* num, int Hexes[8]) {
//int* Hexes[8] = &Hexes[8];
int empty[8];
for(int i = 0; i < 8; i++) {
if(Hexes[i]-*num >= 0) {
*num = (Hexes[i] - *num);
empty[i] = 1;
} else
empty[i] = 0;
}
return empty[8];
}
int Hexes[8] = {128,64,32,16,8,4,2,1};
int main() {
int num = 0;
int here[8];
here[8] = hexConvert(&num,&Hexes[8]);
for (int i = 0; i < 8; i++)
cout << here[i];
}
으로 게시해야합니다. codereview.stackexchange.com –
int here [8]; 여기 [8] = something;은 UB입니다. –
C++의 배열은 그렇게 작동하지 않습니다. –