0은 8진수입니까, 아니면 C의 10진수입니까?
나는 이것을 읽은 적이 있다.C++로 8진수, Java로 10진수입니다.하지만 C에 대한 설명은 없나요?
0이 8진수인지 10진수인지에 따라 차이가 있나요?이것은 제 면접관의 질문입니다.나는 아니라고 했고 8진수든 10진수든 상관없이 항상 0이라고 설명했다.
그리고 왜 C++에서는 8진수, Java에서는 10진수로 간주되는지를 물었다.이게 기준이라고 했잖아요.C로 된 것이 무엇인지 알려주세요.그게 무슨 차이가 있나요?표준이 다른 이유는 무엇입니까?
, 이이 it it it, 식식 it it it it it it it it it it it it it it it it it it it it it it it it it it.0
는 C의 8진수입니다.C99 및 C11 규격에 따르면 6.4.4.1 정수
integergent-module:
정수로opt 변환되었다
정수로opt 변환되었다
- 16진수정수로opt 변환되었다십진법:
입니다.
표시8진수:
0
8진수16진수 값:
옥탈
C11 § 6.4.4.1 정수
octal-constant: 0 octal-constant octal-digit
그리고 그는 왜 C++에서는 8진수, Java에서는 10진수로 간주되는지를 물었다.
완성도를 높이기 위해 Java 사양도 언급할 가치가 있습니다.Java Language Specification 3.10.1부터:
DecimalNumeral: 0 NonZeroDigit Digitsopt NonZeroDigit Underscores Digits
10 진수는 정수 0을 나타내는 단일 ASCII 숫자0 또는 1 ~9 의 ASCII 숫자 뒤에 임의로 밑줄이 붙은1개 또는 복수의 ASCII 숫자로 구성되어 정의 정수는 정의 정수를 나타냅니다.
OctalNumeral: 0 OctalDigits 0 Underscores OctalDigits
8진수는 ASCII 숫자0 뒤에 밑줄로 둘러싸인1개 또는 복수의 ASCII 숫자0 ~ 7로 구성되어 정의, 0 또는 음의 정수를 나타낼 수 있습니다.
바와 맨몸의0
10진수로 간주됩니다.단, 앞에 이어지는 임의의 (공백이 아닌) 자리수열은0
8진수로 간주됩니다.
흥미롭게도, 그 문법에 따르면:
0
decimal10 수수- 부토
00
입니다.
C 표준으로부터 (6.4.4.1 정수 상수)
octal-constant:
0
octal-constant octal-digit
0은 8진수, 10진수 및 16진수 숫자의 공통 자리이기 때문에 0에 대한 차이는 없습니다.이는 숫자에 단일(선행) 0이 아닌 다른 자릿수가 있는 경우에만 의미가 있습니다.
10진수, 8진수, 16진수 등의 정수형은 존재하지 않는 것을 고려해 주십시오.
8진법이에요.'섹션6.4.4.1 Integer constants
N1570 드래프트의 경우:
integer-constant:
decimal-constant integer-suffixopt
octal-constant integer-suffixopt
hexadecimal-constant integer-suffixopt
decimal-constant:
nonzero-digit
decimal-constant digit
octal-constant:
0
octal-constant octal-digit
hexadecimal-constant:
hexadecimal-prefix hexadecimal-digit
hexadecimal-constant hexadecimal-digit
hexadecimal-prefix: one of
0x 0X
nonzero-digit: one of
1 2 3 4 5 6 7 8 9
octal-digit: one of
0 1 2 3 4 5 6 7
hexadecimal-digit: one of
0 1 2 3 4 5 6 7 8 9
a b c d e f
A B C D E F
integer-suffix:
unsigned-suffix long-suffixopt
unsigned-suffix long-long-suffix
long-suffix unsigned-suffixopt
long-long-suffix unsigned-suffixopt
unsigned-suffix: one of
u U
long-suffix: one of
l L
long-long-suffix: one of
ll LL
기타:
- 10진수 상수는 0이 아닌 숫자로 시작되며 일련의 10진수로 구성됩니다.8진수 상수는 프리픽스0 뒤에 임의로 숫자0 ~ 7 의 시퀀스만으로 구성됩니다.16진수 상수는 프리픽스 0x 또는 0X 뒤에 이어지는 10진수 시퀀스와 각각 값이 10 ~15인 문자 a(또는 A)~f(또는 F)로 구성됩니다.
컴파일러의 실장에 따라 다르다고 생각합니다.소스 코드를 보고 "0" 상수를 8진수로 플래그 지정할지 여부를 결정해야 합니다.옥탈 이외의 이유는 다음과 같이 정의할 수 있습니다.옥탈에는 '0' 프리픽스가 붙습니다.단, 접두사는 없습니다.상수가 00일 경우 IS 8진수 - "8진수 제로" :)
언급URL : https://stackoverflow.com/questions/26625311/is-0-an-octal-or-a-decimal-in-c
'source' 카테고리의 다른 글
Vue 구성 요소가 여러 개체를 소품으로 전달하지 않음 (0) | 2022.08.01 |
---|---|
루트의 Vue 라우터 보안 (0) | 2022.08.01 |
Vue 스타일 구성 요소에서 입력 유형 변경[체크박스]이 작동하지 않음 (0) | 2022.08.01 |
Vuex에서 내부 작업을 호출하는 방법 (0) | 2022.08.01 |
Java에서 함수를 매개 변수로 전달하려면 어떻게 해야 합니까? (0) | 2022.08.01 |