해결된 질문
작성
·
28
답변 2
0
안녕하세요,
16진수를 직접 입력할 일이 없을 것 같은데, 정확히 시험에서 요구하는 형태로 출력하시면 됩니다. 16진수 형태로 출력해야 한다면 그렇게 써야 하고, 10진수로 써야 하면 10진수로 써야 합니다.
보통 공단에서는 직접 실행했을 때의 값과 동일해야 정답처리 합니다. 참고로 C언어에서 직접 출력할 때는 앞에 0x가 붙지 않습니다.
< 예제코드 >
#include <stdio.h>
int main(void) {
int num = 255;
printf("10진수: %d\n", num);
printf("8진수 : %o\n", num);
printf("16진수 (소문자): %x\n", num);
printf("16진수 (대문자): %X\n", num);
return 0;
}
출력값:
10진수: 255
8진수 : 377
16진수 (소문자): ff
16진수 (대문자): FF
시험 범위가 아닐 것 같네요. 가능은 합니다.
< Java 예제 >
class Main {
public static void main(String[] args) {
int num = 42;
System.out.println(num); // 10진수
System.out.println(Integer.toOctalString(num)); // 8진수: 52
System.out.println(Integer.toHexString(num)); // 16진수: 2a
System.out.println(Integer.toBinaryString(num)); // 2진수: 101010
}
}
출력값:
42
52
2a
101010
<파이썬 예제>
num = 42
print(num) # 10진수
print(oct(num)) # 8진수: 0o52
print(hex(num)) # 16진수: 0x2a
print(bin(num)) # 2진수: 0b101010
print("{:d}".format(num)) # 10진수
print("{:o}".format(num)) # 8진수
print("{:x}".format(num)) # 16진수 (소문자)
print("{:X}".format(num)) # 16진수 (대문자)
print("{:b}".format(num)) # 2진수
출력값:
42
0o52
0x2a
0b101010
42
52
2a
2A
101010
알고 계시는 건 좋은데, 너무 과한 학습이 아닌가 싶습니다.
모든 언어의 진수 표기법을 알고 가실 필요는 없어 보입니다.
C와 Python에서는 표준 함수로는 없습니다. 아스키코드로 확인하시거나, islower()와 같은 함수로 확인합니다. 시험에 나온다면, 전체를 반복문으로 감싸고 문자열을 회문하면서 확인되는 것만 배열에 추가하는 형태로 나올 수 있겠습니다.
< C언어 예제 >
#include <stdio.h>
#include <ctype.h> // islower()
int main(void) {
char input[] = "HeLLo 123 World!";
char only_lower[100];
int j = 0;
for (int i = 0; input[i] != '\0'; i++) {
if (islower(input[i])) {
only_lower[j++] = input[i];
}
}
only_lower[j] = '\0';
printf("소문자만 추출: %s\n", only_lower);
return 0;
}
<파이썬 예제>
s = "HeLLo 123 World!"
only_lower = ''.join(c for c in s if c.islower())
print("소문자만 추출:", only_lower)
출력값은 두 개의 소스코드 모두 똑같습니다.
소문자만 추출: eoorld
0
안녕하세요, 인프런 AI 인턴입니다. alsrb4367님.
질문해주신 2진수, 8진수, 16진수 표기법 및 소문자 변환 함수에 대해 답변 드리겠습니다.
16진수와 8진수 표기법:
0x
로 시작하며, 예를 들어 0x1a
처럼 표현합니다. 답안지에서도 동일하게 0x
를 사용하여 표기하는 것이 일반적입니다.0
으로 시작합니다. 예를 들어, 012
는 10진수 10을 의미합니다.%d
는 10진수로, %x
는 16진수, %o
는 8진수를 뜻합니다. 이를 통해 다양한 진수 형태로 숫자를 출력할 수 있습니다.Integer.toHexString()
, Integer.toOctalString()
같은 메소드를 통해 다른 진수로 변환할 수 있습니다. 파이썬에서는 hex()
, oct()
함수를 사용합니다.소문자 변환 및 추출:
tolower()
, 파이썬에서는 lower()
를 사용해 문자열을 소문자로 변환할 수 있습니다.[c for c in 문자열 if c.islower()]
형태로 쉽게 추출할 수 있습니다.더 높은 이해를 돕기 위해 유사한 질문과 답변이 제공된 기존의 지식을 찾아보셨으면 좋겠습니다. 가능한 기존 사례를 통해 직접적인 참고를 해 보세요:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.