>일반적인 문제 >다양한 베이스 간 변환

다양한 베이스 간 변환

尚
원래의
2019-06-11 18:26:07103897검색

다양한 베이스 간 변환

1. 2진수와 10진수 변환

1. 2진수를 10진수로 (정수, 소수 상관없이 마지막 자리부터 세어 각 자리의 숫자에 2의 거듭제곱을 곱하면 이 수는 0부터 시작하여 숫자의 위치에 따라 결정됩니다)

예: 01101011.001을 소수로 변환

1乘2的-3次方=0.125
0乘2的-2次方=0
0乘2的-1次方=0
1乘2的0次方=1
1乘2的1次方=2
0乘2的2次方=0
1乘2的3次方=8 
0乘2的4次方=0
1乘2的5次方=32
1乘2的6次方=64
0乘2的7次方=0

그러면: 1+2+0+8+0+32+64+0=107.125
01101011=107

2, 소수를 다음으로 변환 이진수

정수: 2로 나누어 나머지를 취하는 방법은 몫이 0이 될 때까지 계속해서 2로 나누고 나머지는 역순으로 배열하는 과정입니다.
예: 정수 23을 이진수로 변환합니다.

23除2商11余1
11除2商5余1
5除2商2余1
2除2商1余0
1除2商0余1

그런 다음 나머지는 역순으로 배열됩니다. 23=10111


십진수: 2를 곱하여 정수로 반올림합니다. 즉, 소수 부분에 2를 곱한 다음 정수 부분을 취하고 나머지를 계속 곱합니다. 소수 부분에 2를 곱한 다음 정수 부분을 취하고 나머지 소수 부분에 2를 곱한 다음 0이 될 때까지 소수 부분을 취합니다. 0이 될 수 없는 경우 소수점 자리를 반올림하는 것과 같습니다. 필요한 만큼 소수 자릿수를 유지하는 경우 다음 숫자가 0인지 1인지에 따라 숫자를 반올림합니다. 0이면 반올림합니다. 1이면 숫자 하나를 더합니다. 즉, 0은 1로 반올림됩니다. 판독값은 이전 정수부터 다음 정수까지 이루어져야 합니다.

예: 0.125를 이진수로 변환합니다.

0.125에 2를 곱하여 0.25를 얻으면 정수 부분은 0이고 소수 부분은 0.25입니다.

0.25에 2를 곱하면 0.5가 되고 정수 부분은 0이 되고 소수 부분은 0.25가 됩니다.
0.5 2를 곱하여 1.0을 얻으면 정수 부분은 1이고 소수 부분은 0.0입니다.
첫 번째 숫자부터 마지막 ​​숫자인 0.001까지 읽습니다.

23.125를 2진수 10111.001

2진수와 8진수 사이의 변환 (기본은 여전히 ​​2진수와 10진수 사이의 변환입니다.)

3-in-1 방식을 사용합니다. 즉, 2진수 소수점부터 시작하여 나눗셈을 합니다. 점, 왼쪽으로(오른쪽으로) 세 자리씩 한 자리씩 취하고, 이 세 자리를 무게에 따라 더하면 얻어지는 숫자가 한 자리 여덟 자리 이진수이다. 소수점 위치는 변경되지 않고 그대로 유지됩니다. 결과 숫자는 요청된 8진수입니다. 세 자리를 왼쪽(오른쪽)으로 취하여 가장 높은(낮은) 자리에 이르면 세 자리를 만들 수 없으면 소수점의 가장 왼쪽(맨 오른쪽)에 0을 더하면 됩니다. (최하위) 자리는 세 자리로 구성한다.) 여기서 가장 높은 자리와 가장 낮은 자리는 십진수와 동일하며 첫 번째가 가장 높은 자리, 마지막이 가장 낮은 자리이다.

세 자리 이진수는 하나의 8진수를 나타냅니다. 가장 큰 세 자리 이진수(111)의 십진수는 7이므로 각 자릿수는 이진수에서 8진수

사이의 숫자인 것이 보장됩니다. 예: 1100100은 8진수로 변환됩니다.

1100100은 다음과 같이 분할됩니다. 001 100 100

0*2^2+0*2^1+1*2^0=1
1*2^2+0*2^1+0*2^0=4
1*2^2+0*2^1+0*2^0=4

순서대로 읽습니다. 144

1100100=144



2 8진수와 2진수 간의 대응 관계. 숫자는

0=000 
1=001 
2=010 
3=011 
4=100 
5=101 
6=110 
7=111

예: 8진수 653524를 2진수로 변환

110 101 011 101 010 100

3. 2진수와 16진수 간의 변환 (기본은 여전히 ​​2진수와 10진수 간의 변환)

4자리 이진수는 하나의 16진수 숫자를 나타냅니다. 최대 4자리 이진수(1111)는 십진수 표현인 15, 즉 16진수 표현인 F이므로 각 숫자가 0~F 사이의 숫자임을 보장합니다.

1. 2진수를 16진수로 변환

예: 1100100 분할 0110 0100

0110=6

0100=4

1100100=64

2.16진수를 2진수로 변환

16진수와 대응 숫자 사이의 차이:

1-0001
2-0010
3-0011
4-0100
5-0101
6-0110
7-0111
8-1000
9-1001
A-1010
B-1011
C-1100
D-1101
E-1110
F-1111

4. 10진수와 16진수 간의 변환

알고리즘은 2에서 16으로 변경된다는 점을 제외하면 2진수와 16진수 간의 변환과 동일합니다.

1 10진수 16진수로 변환예: 10진수 123을 16진수로 변환

123 16으로 나눈 몫 7 나머지 B

7 나눈 16의 몫 0 나머지 7

결과는 7B
2입니다.
십진수를 이진수로 변환

위 내용은 다양한 베이스 간 변환의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.