>  기사  >  백엔드 개발  >  Go 언어 관점에서 컴퓨터 비트 관련 이슈 분석

Go 언어 관점에서 컴퓨터 비트 관련 이슈 분석

Go语言进阶学习
Go语言进阶学习앞으로
2023-07-21 11:52:271187검색

코드 조각

이번에는 Go 언어를 예로 들어 보겠습니다. Go 언어는 C와 유사한 언어이며 일부 기본 레이어는 매우 유사합니다.

Code

package main


import (
    "fmt"
    "unsafe"
)


func main() {
    //定义一个 字符a
    var a = 'a'
    //定义一个 正 整数3
    var b uint8 = 3
    var c uint8 = 98
    fmt.Printf("值:%c,十进制:%d,类型:%T,二进制:%b,大小%v字节\n", a, a, a, a, unsafe.Sizeof(a)) // 4个字节
    fmt.Printf("值%d,十进制:%d,类型:%T,二进制%b,大小%v字节\n", b, b, b, b, unsafe.Sizeof(b))   //一个字节
    fmt.Printf("值%c,十进制,%d,类型:%T,二进制%b,大小%v字节\n", c, c, c, c,unsafe.Sizeof(c))      //一个字节
}

실행 결과

Go 언어 관점에서 컴퓨터 비트 관련 이슈 분석

여러 가지 질문이 있습니다

변수 이름을 지정할 때 문자 a를 사용하는 이유는 무엇입니까? 10진수는 97인가요? 2진수는 1100001인가요?

변수 c의 이름이 98인데 b를 출력할 수 있는 이유는 무엇인가요?

bits and bytes

위의 문제를 이해하려면 여전히 필수적인 문제를 이해해야 합니다.

우리 프로그램은 결국 메모리에서 실행됩니다.

그리고 우리의 메모리 모듈도 아마 이렇겠죠.

Go 언어 관점에서 컴퓨터 비트 관련 이슈 분석

메모리 스틱의 본질은 본질적으로 전자 부품입니다. 결국 전원이 켜진 상태(1)가 아니라 두 가지 상태만 있습니다. 전원이 켜졌습니다(0 ).
bits

an

전자 부품1비트입니다.

Go 언어 관점에서 컴퓨터 비트 관련 이슈 분석바이트


그리고

바이트 8비트 , . 1字节=8位ㅋㅋㅋ

Go 언어 관점에서 컴퓨터 비트 관련 이슈 분석

1바이트는 8개의 0 또는 1입니다 이렇게 , 8개의 0 또는 1보다 적게 표시되면 앞에 오는 것을 0으로 채우세요. 8이면 충분합니다. 사람들. 일반적으로

언어는 일반적으로 바이트에서만 작동하며, 제자리에서 작동하는 경우는 거의 없습니다. a가 9700000000인 이유는 위의 내용을 알고 있지만 비트

전원 켜짐 또는 전원 없음을 의미합니다.

's

전자 부품

.

1바이트8 또는 또는 전원이 공급되지 않는 전자 부품의 조합을 나타냅니다. 이렇게 해도 실제 문제는 해결되지 않습니다. 10을 저장하고 20을 더하고 덧셈 계산을 수행하려면 어떻게 해야 하나요? ? ?

그래서 이때 불이 켜진 것과 켜지지 않은 것이 무엇인지를 의미하는 규칙이 있어야 합니다.

그렇습니다

ASCII이 사양의 최소 단위는 바이트입니다. 즉, ASCII这个规范,这个规范的最小单位是字节,也就是同时管理8个0或1

比如说,第一个字节,就是前八位,如果说全部都是0,就表示的是十进制数字0。

8个二进制表示方式是000000008개의 0 또는 1을 동시에 관리합니다

.

Go 언어 관점에서 컴퓨터 비트 관련 이슈 분석

For 예를 들어, 첫 번째 바이트는 처음 8비트입니다. 모두 0이면 10진수 0을 의미합니다.

8 바이너리 표현은

00000001 코드><code style="box-sizing: border-box;font-family: var(--monospace);vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;">00000001

Go 언어 관점에서 컴퓨터 비트 관련 이슈 분석

等等等等,通过字节组织位,通过每8位不同的组合,表示不同的符号或者数字或者字母等。

具体二进制对应的符号或者数字:https://baike.baidu.com/item/ASCII/309296?fromtitle=ASCII%E7%BC%96%E7%A0%81&fromid=3712529&fr=aladdin

通过查询ASCII可知。

字母a的二进制是0110 0001,十进制是97,表示的符号是aGo 언어 관점에서 컴퓨터 비트 관련 이슈 분석

등, 8가지 다른 조합마다 바이트 단위로 구성됩니다. 비트는 서로 다른 기호, 숫자, 문자 등을 나타냅니다.


Go 언어 관점에서 컴퓨터 비트 관련 이슈 분석

특정 바이너리 해당 기호 또는 숫자:🎜https:/ / baike.baidu.com/item/ASCII/309296?fromtitle=ASCII%E7%BC%96%E7%A0%81&fromid=3712529&fr=aladdin🎜🎜

🎜쿼리별🎜🎜ASCII🎜🎜알 수 있습니다. 🎜🎜

🎜문자 a의 바이너리는 🎜🎜0110 0001🎜🎜, 소수점은 🎜🎜97🎜🎜, 표시되는 기호는 🎜🎜a🎜🎜. 🎜🎜🎜🎜🎜

그래서 처음부터 직시합시다!

98이 b를 출력할 수 있는 이유는 ASCIIASCII,因为98代表的就是字母b,就是二进制0110 0010

只不过是输出方式不一样。

Go 언어 관점에서 컴퓨터 비트 관련 이슈 분석

目前的编码方向

其实一个字节,8位,如果全部亮灯,就是11111111,他的十进制是255, 98은 문자 b, 즉 이진0110 0010

.

만 하지만 출력방식이 다릅니다. 🎜🎜

Go 언어 관점에서 컴퓨터 비트 관련 이슈 분석🎜

🎜현재 인코딩 방향🎜🎜

🎜 In 사실 모든 표시등이 켜져 있는 경우 1바이트 8비트는 🎜🎜11111111🎜🎜, 소수점은 🎜🎜255🎜🎜, 이론적으로는 255개의 기호를 지원할 수 있습니다. 🎜🎜🎜🎜영어권 국가에서는 문자 하나가 8비트이고 hello를 저장하는 데는 총 40바이트이면 충분합니다. 🎜🎜

하지만 요즘은 컴퓨터가 우뚝 솟아서 중국도 쓰고, 일본도 쓰고, 각 나라의 총 문자 수는 더 이상 255자만큼 간단하지 않습니다.

그래서 중국의 GBKGBK等一些编码,各种编码都是基于ASCII扩充的。

ASCII占一个字节,8位,那我GBK不够啊,几万个汉字呢,那我占俩字节,16位,16个0或者1,应该凑合吧,再不行三个字节,24个0或1,三个字节十进制就已经到16777215了,上千万了,足够保存各国的符号和文字了。

但是GBK和其他编码又不通用,所以现在又衍生出utf-8 및 기타 일부 코드, 다양한 코드는 ASCII

🎜 확장. 🎜🎜

🎜ASCII🎜 🎜1바이트, 8비트를 차지한 다음 I🎜🎜GBK🎜🎜로는 충분하지 않습니다. 한자가 수만개이므로 2바이트, 16비트, 16개의 0 또는 1을 차지합니다. 적당히 해야 합니다. 그렇지 않으면 , 3바이트이면 충분합니다. , 24개의 0 또는 10진수 3바이트가 도착했습니다. 🎜🎜16777215🎜🎜, 수천만 개로 다양한 국가의 기호와 문자를 보존할 수 있습니다. 🎜🎜

🎜하지만 🎜🎜GBK code>🎜🎜는 다른 코드와 공통되지 않으므로 이제 파생됩니다 🎜🎜<code style="box-sizing: border-box;font-family: var(--monospace);vertical-align:initial;border- 너비: 1px;테두리 스타일: 단색;테두리 색상: rgb(231, 234, 237);배경 색상: rgb(243, 244, 244);테두리 반경: 3px;패딩 오른쪽: 2px;패딩- 왼쪽: 2px;font-size: 0.9em;">utf-8🎜🎜 및 기타 코드에는 다양한 국가의 코드가 포함되어 있습니다. 🎜🎜

目前 utf-8utf-8是一个最好的编码,基本已经支持所以计算机。


总结

本篇主要是理解计算机内存的本质,1字节=8位,1位=一个通电or没通电的电子元件,通过不同的00101010是一个最好的编码,基本已经支持所以计算机。


🎜🎜

🎜总结🎜

🎜本篇主要是理解计算机内存的本质,🎜🎜1字节=8位🎜🎜,🎜🎜1位=一个通电or没通电的电子元件🎜🎜,통상불균일🎜🎜00101010🎜🎜表示는 서로 다른 종류입니다.🎜🎜🎜

위 내용은 Go 언어 관점에서 컴퓨터 비트 관련 이슈 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 Go语言进阶学习에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제