"이 기사에서는 Go를 사용하여 십진수와 이진수를 변환하는 방법을 소개합니다.
"
우선 일반적으로 사용되는 숫자는 모두 십진수이며 이진수에는 0과 1만 포함된다는 점을 이해해야 합니다.
그럼 10진수를 2진수로 변환하는 방법에 대해 간단히 이야기해보겠습니다.
방법 1: 짧은 나눗셈
예를 들어, 이제 값 23을 이진수로 변환해야 하며 짧은 나눗셈을 사용하여 계산합니다.
아래 그림은 변환 과정을 보여줍니다.
십진수를 2로 나누고 결과 몫을 2로 나누는 식으로 몫이 1 또는 0이 될 때까지 계속한 다음 나눗셈의 나머지 부분을 취합니다. 이는 이를 이진수로 변환한 결과입니다.
23을 이진수로 변환하면 10111이므로 나머지를 모두 뒤집으면 됩니다.
옵션 2: Go를 사용하여 변환
위 그림에서 Go 프로그래밍을 처음 접하는 대부분의 파트너는 이에 대해 약간의 의구심을 가질 것으로 추정됩니다. 정수가 전달될 때 계산된 데이터는 부동 소수점 유형이어야 하는데 그렇다면 어떻게 될까요? 이게 계산됐어? n /= 2
N/=2는 실제로 N=N/2이고 N은 int 유형이므로 컴파일러는 자동으로 정수가 아닌 숫자를 정수 유형으로 변환하므로 19.5가 N에 들어가므로 19
그래서 두 번째 루프 문을 실행하면 계산에 11.5를 사용하는 대신 n이 자동으로 11로 변환됩니다.
여기에서도 사용됩니다strconv.Itoa strconv 패키지는 문자열과 단순 데이터 유형 간의 유형 변환 기능을 제공합니다. <code style="font-size: 14px; word-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin: 0 2px; background-color: rgba(27,31,35,.05); font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; word-break: break-all; color: rgb(271, 93, 108);">strconv.Itoa
strconv包提供了字符串与简单数据类型之间的类型转换功能。
可以将简单类型转换为字符串,也可以将字符串转换为其它简单类型。
因为result是字符串类型,所以需要时Itoa来把返回的值进行类型转换,将int类型转为string类型。
最终的返回值就是10111
二进制转为十进制
将这个10111
二进制转为十进制也很简单
看以下计算1*2^0 + 1*2^1 + 1*2^2 + 0*2^3 + 1*2^4 = 1+2+4+0+16 = 23
결과가 문자열 유형이기 때문에 Itoa는 필요할 때 반환된 값을 유형 변환하여 int 유형을 문자열 유형으로 변환합니다.최종 반환 값은
이진수를 십진수로 변환하세요10111
10111
2진수를 10진수로 변환하는 것도 매우 간단합니다다음 계산을 참조하세요1*2^0 + 1*2^1 + 1*2^2 + 0*2^3 + 1 *2^4 = 1+2+4+0+16 = 23
위 내용은 Go를 사용하여 염기 간 변환 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!