바이트 배열이란 무엇을 의미합니까? [닫은]


103

누군가 설명해 주시겠습니까? 정확히 개념을 이해하지 못합니다.

바이트 배열이란 무엇입니까?

응용 프로그램 / 프로그램에서 언제 어디서 사용합니까?

바이트 배열 사용의 장단점은 무엇입니까?


나는 이것이 의미가 있다고 생각한다. Java I / O 클래스를 읽는다면; 예를 들어 ByteArrayInputStream; ByteArrayOutputStream. ByteArray를 이해하지 않는 한 ByteArrayInputStream, ByteArrayOutputStream이 의미하는 바를 어떻게 명확히합니까?
CuriousMind

답변:


74

바이트는 8 비트 (이진 데이터)입니다.

바이트 배열은 바이트 배열입니다 (tautology FTW!).

바이트 배열을 사용하여 이진 데이터 모음 (예 : 파일 내용)을 저장할 수 있습니다. 단점은 전체 파일 내용을 메모리에로드해야한다는 것입니다.

많은 양의 이진 데이터의 경우 언어가 지원하는 경우 스트리밍 데이터 유형을 사용하는 것이 좋습니다.


16
극도로 현명 해지기 위해 바이트는 8 비트로 보장되지 않습니다. 확실히 오늘날의 사실상의 표준이지만 역사적으로 항상 그런 것은 아닙니다. en.wikipedia.org/wiki/Byte
JaredPar

14
@JaredPar : 정확하지만 누군가가 바이트가 8 비트라고 말할 때마다 면책 조항이 필요하다고 생각합니다.
Dinah

6
@Dinah, 동의합니다. 그래서 현학적 인 면책 조항을 추가했습니다. 오늘 방금 관련 페이지를 보았습니다.
JaredPar

6
불 좀 켜주 The downside to this is that the entire file contents must be loaded into memory.시겠어요?
CodeYogi

1
@JeffOrris는 "바이트 배열로 변환" 이 무슨 뜻인지 잘 모르겠습니다 . 그것은 당신이 일반적으로하는 일이 아닙니다. 또한, 무엇에 "덜 취약" 합니까?
Phil

56

나는 당신이 바이트가 무엇인지 알고 있다고 가정합니다. 바이트 배열은 연속적인 (나란히있는) 바이트 그룹을 포함하는 메모리 영역이므로 첫 번째 바이트, 두 번째 바이트 등 순서대로 이야기하는 것이 합리적입니다.

바이트가 다른 유형과 데이터 범위 (0에서 255 사이의 숫자, -128에서 127 사이의 숫자, ASCII를 사용하는 단일 문자 (예 : 'a'또는 '%', CPU 연산 코드))를 인코딩 할 수있는 것처럼 바이트 배열의 각 바이트 이러한 것 중 하나 일 수도 있고, 범위가 더 큰 숫자 (예 : 0..65535의 16 비트 부호없는 정수), 국제 문자 세트, 텍스트 문자열 ( "hello") 또는 part /와 같은 일부 멀티 바이트 값에 기여할 수 있습니다. 컴파일 된 모든 컴퓨터 프로그램.

바이트 배열의 중요한 점은 메모리의 해당 부분에 저장되는 각 8 비트 값에 대한 인덱스 된 (빠르고) 정확하고 원시 액세스를 제공하고 해당 바이트에서 모든 단일 비트를 제어 할 수 있다는 것입니다. 나쁜 점은 컴퓨터가 모든 항목을 독립적 인 8 비트 숫자로 취급한다는 것입니다. 프로그램이 처리하는 것일 수도 있고, 자신의 길이를 추적하고 성장하는 문자열과 같은 강력한 데이터 유형을 선호 할 수도 있습니다. 필요에 따라 또는 비트 단위 표현에 대해 생각하지 않고 3.14를 저장할 수있는 부동 소수점 숫자. 데이터 유형으로서 긴 배열의 시작 부분에 데이터를 삽입하거나 제거하는 것은 비효율적입니다. 생성 / 필요한 간격을 만들거나 채우기 위해 모든 후속 요소를 섞어 야하기 때문입니다.


1
아주 좋은 설명 !!!
Sundararaj Govindasamy

11

에서 위키 피 디아 :

컴퓨터 과학에서 배열 데이터 구조 또는 단순히 배열은 하나 이상의 정수 인덱스로 식별되는 요소 (값 또는 변수) 모음으로 구성된 데이터 구조로, 각 요소의 주소가 해당 인덱스에서 계산 될 수 있도록 저장됩니다. 간단한 수학 공식으로 튜플.

따라서 바이트 배열이라고하면 바이트 (8 비트) 크기의 요소 모음을 포함하는 정의 된 길이 (예 : 요소 수)의 배열을 의미합니다.

C #에서 바이트 배열은 다음과 같습니다.

byte[] bytes = { 3, 10, 8, 25 };

위의 샘플은 각 요소의 길이 가 최대 Byte 일 수있는 4 개 요소의 배열을 정의합니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.