맨위로가기

니블

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

니블은 4비트의 데이터 단위를 나타내는 용어이다. 이는 8비트 바이트의 절반에 해당하며, 2진화 십진법(BCD) 숫자를 저장하는 데 사용된다. 니블이라는 용어는 1958년경 로스알라모스 국립 연구소의 프로그래머 데이비드 B. 벤슨에 의해 처음 사용된 것으로 알려져 있다. 니블은 이진법, 십진법, 16진법으로 표현할 수 있으며, 바이트에서 상위 니블과 하위 니블을 추출하는 방법이 있다.

2. 역사

니블은 바이트(byte)의 절반을 의미하며, 영어 단어 "bite"와 발음이 같은 "byte"에서 유래했다. 역사적으로, "nybble"이 4비트보다 큰 비트 그룹에 사용된 경우가 있었다. 애플 II에서는 디스크 드라이브 제어 및 그룹 코드 기록의 상당 부분이 소프트웨어로 구현되었다. 디스크에 데이터를 쓸 때는 256바이트 페이지를 5비트(나중에는 6비트) 니블 세트로 변환했으며, 디스크 데이터를 읽을 때는 그 반대 과정을 거쳤다. 통합 워즈 머신에 대한 1982년 문서에서는 "8비트 니블"을 언급하기도 했다. "바이트"라는 용어는 한때 비트 집합을 의미했지만 반드시 8비트를 뜻하는 것은 아니었기에, "바이트"와 옥텟", "니블"과 "4중주(쿼드비트)"를 구분하기도 했다. 오늘날 "바이트"와 "니블"은 각각 8비트와 4비트 단위를 나타내는 용어로 굳어졌다.

2. 1. 용어의 기원

"니블"이라는 용어는 바이트(byte)의 절반을 의미하며, 이는 영어 단어 "bite"와 발음이 같은 "byte"에서 유래했다. 1958년경 로스알라모스 국립 연구소의 프로그래머였던 데이비드 B. 벤슨은 2진화 십진법(BCD) 숫자를 저장하는 데 필요한 저장 단위이자 "바이트의 절반"으로 "니블"이라는 용어를 재미로 사용했으며, 어쩌면 그 용어를 처음 만들었을지도 모른다고 회상했다. "nybble"이라는 대체 철자는 "byte"의 철자를 반영하여 1980년대 초 ''킬로바우드''와 ''바이트''의 사설에서 언급되었다. "nybble"이라는 용어의 또 다른 초기 사용 기록은 1977년 시티뱅크의 소비자 뱅킹 기술 그룹에서였는데, 자동 현금 인출기와 시티은행의 데이터 센터 간의 거래 메시지에 대한 사전 ISO 8583 표준을 만들면서 기본적인 데이터 단위로 'nabble'을 사용했다.

IBM 메인프레임 내에서 압축 십진법 형식(BCD)으로 저장된 숫자의 자릿수를 저장하는 데 사용되는 메모리 양을 설명하는 데 "니블"이 사용되었다. 8비트 바이트는 반으로 나뉘며, 각 니블은 하나의 십진수 자릿수를 저장하는 데 사용되었다. 변수의 마지막 (가장 오른쪽) 니블은 부호를 위해 예약되었다. 따라서 최대 9자리를 저장할 수 있는 변수는 5바이트로 "압축"되었다.

역사적으로, "nybble"이 4비트보다 큰 비트 그룹에 사용된 경우가 있었다. 애플 II에서는 디스크 드라이브 제어 및 그룹 코드 기록의 상당 부분이 소프트웨어로 구현되었다. 오늘날, "바이트"와 "니블"이라는 용어는 거의 항상 각각 8비트 및 4비트 모음을 나타내며 다른 크기를 표현하는 데는 거의 사용되지 않는다.

2. 2. 초기 사용 사례

"니블"이라는 용어는 영어 단어 "bite"와 발음이 같은 동음이의어인 "바이트의 절반"을 나타내는 데서 유래되었다. 1958년경 로스알라모스 국립 연구소의 프로그래머였던 워싱턴 주립 대학교의 명예 교수 데이비드 B. 벤슨은 "바이트의 절반"이자 2진화 십진법(BCD) 숫자를 저장하는 데 필요한 저장 단위로 "니블"이라는 용어를 재미로 사용했으며, 어쩌면 그 용어를 처음 만들었을지도 모른다고 회상했다. "nybble"이라는 대체 철자는 "byte"의 철자를 반영하며, 1980년대 초 ''킬로바우드''와 ''바이트''의 사설에서 언급되었다. 1977년 시티은행의 소비자 뱅킹 기술 그룹은 자동 현금 인출기와 시티은행의 데이터 센터 간의 거래 메시지에 대한 사전 ISO 8583 표준을 만들었으며, 기본적인 데이터 단위 'nabble'을 사용했다.

IBM 메인프레임 내에서 "니블"은 압축 십진법 형식 (BCD)으로 저장된 숫자의 자릿수를 저장하는 데 사용되는 메모리 양을 설명하는 데 사용된다. 이 기술은 계산을 더 빠르게 하고 디버깅을 쉽게 하기 위해 사용되었다. 8비트 바이트는 반으로 나뉘며, 각 니블은 하나의 십진수 자릿수를 저장하는 데 사용된다. 변수의 마지막 (가장 오른쪽) 니블은 부호를 위해 예약되어 있다. 따라서 최대 9자리를 저장할 수 있는 변수는 5바이트로 "압축"된다. 숫자를 읽을 수 있다는 데서 비롯되었다. 예를 들어, 5바이트 BCD 값은 +314159265의 십진수 값을 나타낸다.

역사적으로, "nybble"이 4비트보다 큰 비트 그룹에 사용된 경우가 있는데, 애플 II에서는 디스크 드라이브 제어 및 그룹 코드 기록의 상당 부분이 소프트웨어로 구현되었다. 디스크에 데이터를 쓰는 것은 256바이트 페이지를 5비트 (나중에는 6비트) 니블 세트로 변환하여 수행되었으며, 디스크 데이터를 로드하려면 그 반대가 필요했다. 통합 워즈 머신에 대한 1982년 문서는 일관되게 "8비트 니블"을 언급한다.

2. 3. 옥텟과의 관계

"니블(nibble)"이라는 용어는 "바이트(byte)의 절반"을 의미하며, "바이트"는 영어 단어 "bite"와 발음이 같은 동음이의어이다. 1958년경 로스알라모스 국립 연구소의 프로그래머였던 데이비드 B. 벤슨(워싱턴 주립 대학교 명예 교수)은 2진화 십진법(BCD) 숫자를 저장하는 데 필요한 저장 단위이자 "바이트의 절반"으로 "니블"이라는 용어를 재미로 사용했다고 회상했다. "nybble"이라는 대체 철자는 "byte"의 철자를 반영하여 1980년대 초 ''킬로바우드''와 ''바이트''의 사설에서 언급되었다. 1977년 시티은행의 소비자 뱅킹 기술 그룹은 자동 현금 인출기와 시티은행의 데이터 센터 간의 거래 메시지에 대한 사전 ISO 8583 표준을 만들면서, 기본적인 데이터 단위로 'nabble'을 사용했다.

IBM 메인프레임 내에서 니블은 압축 십진법 형식(BCD)으로 저장된 숫자의 자릿수를 설명하는 데 사용된다. 8비트 바이트는 반으로 나뉘며, 각 니블은 하나의 십진수 자릿수를 저장한다. 변수의 마지막 니블은 부호를 위해 예약된다. 따라서 최대 9자리를 저장할 수 있는 변수는 5바이트로 "압축"된다. 숫자를 읽을 때는 두 개의 16진수 숫자가 사용되는 16진수 덤프가 사용되었다.

역사적으로, "nybble"이 4비트보다 큰 비트 그룹에 사용된 경우가 있었다. 애플 II에서는 디스크 드라이브 제어 및 그룹 코드 기록의 상당 부분이 소프트웨어로 구현되었다. 데이터를 디스크에 쓸 때는 256바이트 페이지를 5비트(나중에는 6비트) 니블 세트로 변환했으며, 디스크 데이터를 로드할 때는 그 반대 과정이 필요했다. 통합 워즈 머신에 대한 1982년 문서에서는 "8비트 니블"을 언급했다. "바이트"라는 용어는 한때 비트 집합을 의미했지만 반드시 8비트는 아니었으므로, "바이트"와 "옥텟", "니블"과 "4중주" (또는 "쿼드비트")의 구별이 있었다. 오늘날, "바이트"와 "니블"이라는 용어는 거의 항상 각각 8비트 및 4비트 모음을 나타내며 다른 크기를 표현하는 데는 거의 사용되지 않는다.

3. 표현

니블은 이진법 및 16진법으로 표현할 수 있다.

니블의 16진수 표현
16진수10진수8진수이진수
0000000
1110001
2220010
3330011
4440100
5550101
6660110
7770111
88101000
99111001
A10121010
B11131011
C12141100
D13151101
E14161110
F15171111


3. 1. 이진법, 십진법, 16진법 표현

이진법, 십진법, 16진법 간의 니블 표현
이진법십진법16진법
000000
000111
001022
001133
010044
010155
011066
011177
100088
100199
101010A
101111B
110012C
110113D
111014E
111115F



이진수와 16진수 표현 예시
이진수16진수
0000 0100 00100 4 2
0010 1010 10012 A 9
0010 0000 10012 0 9
1110 0100 1001E 4 9
0011 1001 01103 9 6
0001 0000 00011 0 1
0011 0101 01003 5 4
0001 0110 01001 6 4


3. 2. 상위 니블과 하위 니블

바이트에서 니블을 추출하려면 비트 논리 AND 연산을 수행하고, 추출할 니블이 상위 니블인지 하위 니블인지에 따라 선택적으로 비트 시프트를 수행한다.[15]

C에서:

```c

#define HI_NIBBLE(b) (((b) >> 4) & 0x0F)

#define LO_NIBBLE(b) ((b) & 0x0F)

```

여기서 `b`는 정수 데이터 형식의 변수 또는 상수여야 하며, `b`의 최하위 바이트만 사용된다.

예를 들어, `HI_NIBBLE(0xAB)==0xA`이고 `LO_NIBBLE(0xAB)==0xB`이다.

Common Lisp에서:

```lisp

(defun hi-nibble (b)

(ldb (byte 4 4) b))

(defun lo-nibble (b)

(ldb (byte 4 0) b))

```

"상위 니블"(high nibble)과 "하위 니블"(low nibble)이라는 용어는 바이트 내의 하위 비트 및 상위 비트를 각각 포함하는 니블을 나타내는 데 사용된다. 바이트 내 비트의 도형 표현에서는, 왼쪽 끝의 비트가 최상위 비트(MSB)를 나타낼 수 있다. 이는 숫자의 왼쪽에 있는 숫자가 최상위인 일반적인 십진 표기에 해당한다. 그러한 예에서 바이트의 왼쪽 끝 4비트가 상위 니블을 형성하고 나머지 4비트가 하위 니블을 형성한다.[15] 예를 들어, 9710 = (0110 0001)2 에서 상위 니블은 01102 (6)이고, 하위 니블은 00012 (1)이다.

4. 바이트에서 니블 추출

바이트에서 니블을 추출하려면 비트 논리 AND 연산을 수행하고, 추출할 니블이 상위 니블인지 하위 니블인지에 따라 선택적으로 비트 시프트를 수행한다.

Common Lisp의 경우 다음과 같다.

```lisp

(defun hi-nibble (b)

(ldb (byte 4 4) b))

(defun lo-nibble (b)

(ldb (byte 4 0) b))

4. 1. C 언어

바이트에서 니블을 추출하려면 비트 논리 AND 연산을 수행하고, 추출할 니블이 상위 니블인지 하위 니블인지에 따라 선택적으로 비트 시프트를 수행한다.

C에서:

```c

#define HI_NIBBLE(b) (((b) >> 4) & 0x0F)

#define LO_NIBBLE(b) ((b) & 0x0F)

```

여기서 `b`는 정수 데이터 형식의 변수 또는 상수여야 하며, `b`의 최하위 바이트만 사용된다.

예를 들어, `HI_NIBBLE(0xAB)==0xA`이고 `LO_NIBBLE(0xAB)==0xB`이다.

4. 2. Common Lisp

lisp

(defun hi-nibble (b)

(ldb (byte 4 4) b))

(defun lo-nibble (b)

(ldb (byte 4 0) b))

참조

[1] 서적 Microprocessors and Digital Systems McGraw-Hill
[2] 서적 Hacker's Delight Addison Wesley - Pearson Education, Inc. 2013
[3] 서적 The New Hacker's Dictionary https://books.google[...] MIT Press
[4] 서적 Introduction to the use of digital computers: Notes from the Summer Conference Held at the Computation Center of the University of North Carolina, Chapel Hill, N.C., August 17-28, 1959 University of North Carolina at Chapel Hill, Computation Center
[5] 서적 Digitale Rechenanlagen - Grundlagen / Schaltungstechnik / Arbeitsweise / Betriebssicherheit Springer-Verlag / IBM 1965
[6] 서적 Public Data Networks: From Separate PDNs to the ISDN https://books.google[...] Springer Science+Business Media
[7] 서적 Webster's New World Telecom Dictionary https://books.google[...] John Wiley & Sons
[8] 서적 Data Communications and Networks, Vol. III https://books.google[...] Institution of Electrical Engineers
[9] 서적 Voyage au centre de la HP28c/s http://www.courbis.f[...] Editions de la Règle à Calcul 2015-09-06
[10] 서적 Introduction to C++ https://books.google[...] Morgan Kaufmann
[11] 서적 Beneath Apple DOS https://archive.org/[...] Quality Software 2017-03-21
[12] 서적 Beneath Apple ProDOS - For Users of Apple II Plus, Apple IIe and Apple IIc Computers http://www.apple-iig[...] Quality Software 2017-03-21
[13] 서적 Copy II Plus Version 9 - ProDOS/DOS Utilities - Data Recovery, File Management, Protected Software Backup http://cps.applearch[...] Central Point Software, Inc. 2017-03-21
[14] 서적 Integrated Woz Machine (IWM) Specification http://www.brutaldel[...] DigiBam Computer Museum 2016-08-06
[15] 웹사이트 Binary arithmetic http://www.freesoft.[...] 2015-07-20
[16] 서적 Microprocessors and Digital Systems McGraw-Hill



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com