코드 조각
이번에는 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)) //一个字节 }
실행 결과
여러 가지 질문이 있습니다
변수 이름을 지정할 때 문자 a를 사용하는 이유는 무엇입니까? 10진수는 97인가요? 2진수는 1100001
인가요?
변수 c의 이름이 98인데 b를 출력할 수 있는 이유는 무엇인가요?
위의 문제를 이해하려면 여전히 필수적인 문제를 이해해야 합니다.
우리 프로그램은 결국 메모리에서 실행됩니다.
그리고 우리의 메모리 모듈도 아마 이렇겠죠.
메모리 스틱의 본질은 본질적으로 전자 부품입니다. 결국 전원이 켜진 상태(1)가 아니라 두 가지 상태만 있습니다. 전원이 켜졌습니다(0 ).
bits
전자 부품은 1비트입니다.
바이트
바이트 는 8비트 , . 1字节=8位
ㅋㅋㅋ
1바이트는 8개의 0 또는 1입니다 이렇게 , 8개의 0 또는 1보다 적게 표시되면 앞에 오는 것을 0으로 채우세요. 8이면 충분합니다. 사람들. 일반적으로
언어는 일반적으로 바이트에서만 작동하며, 제자리에서 작동하는 경우는 거의 없습니다. a가 9700000000
인 이유는 위의 내용을 알고 있지만 비트 는
전원 켜짐 또는 전원 없음을 의미합니다.
. 1바이트는 8 또는 또는 전원이 공급되지 않는 전자 부품의 조합을 나타냅니다. 이렇게 해도 실제 문제는 해결되지 않습니다. 10을 저장하고 20을 더하고 덧셈 계산을 수행하려면 어떻게 해야 하나요? ? ? 그래서 이때 불이 켜진 것과 켜지지 않은 것이 무엇인지를 의미하는 규칙이 있어야 합니다. 그렇습니다 比如说,第一个字节,就是前八位,如果说全部都是0,就表示的是十进制数字0。 8个二进制表示方式是 8 바이너리 표현은 ASCII
이 사양의 최소 단위는 바이트입니다. 즉, ASCII
这个规范,这个规范的最小单位是字节,也就是同时管理8个0或1。00000000
8개의 0 또는 1을 동시에 관리합니다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
等等等等,通过字节组织位,通过每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
,表示的符号是a
🎜쿼리별🎜🎜ASCII
🎜🎜알 수 있습니다. 🎜🎜
🎜문자 a의 바이너리는 🎜🎜0110 0001
🎜🎜, 소수점은 🎜🎜97
🎜🎜, 표시되는 기호는 🎜🎜a
🎜🎜. 🎜🎜🎜🎜🎜
그래서 처음부터 직시합시다!
98이 b를 출력할 수 있는 이유는 ASCII
ASCII
,因为98代表的就是字母b,就是二进制0110 0010
。
只不过是输出方式不一样。
其实一个字节,8位,如果全部亮灯,就是11111111
,他的十进制是255
, 98은 문자 b, 즉 이진0110 0010
.
만 하지만 출력방식이 다릅니다. 🎜🎜🎜
🎜 In 사실 모든 표시등이 켜져 있는 경우 1바이트 8비트는 🎜🎜11111111
🎜🎜, 소수점은 🎜🎜255
🎜🎜, 이론적으로는 255개의 기호를 지원할 수 있습니다. 🎜🎜🎜🎜영어권 국가에서는 문자 하나가 8비트이고 hello를 저장하는 데는 총 40바이트이면 충분합니다. 🎜🎜
하지만 요즘은 컴퓨터가 우뚝 솟아서 중국도 쓰고, 일본도 쓰고, 각 나라의 총 문자 수는 더 이상 255자만큼 간단하지 않습니다.
그래서 중국의 GBK
GBK
等一些编码,各种编码都是基于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-8
utf-8
是一个最好的编码,基本已经支持所以计算机。
本篇主要是理解计算机内存的本质,1字节=8位
,1位=一个通电or没通电的电子元件
,通过不同的00101010
是一个最好的编码,基本已经支持所以计算机。
🎜本篇主要是理解计算机内存的本质,🎜🎜1字节=8位
🎜🎜,🎜🎜1位=一个通电or没通电的电子元件
🎜🎜,통상불균일🎜🎜00101010
🎜🎜表示는 서로 다른 종류입니다.🎜🎜🎜
위 내용은 Go 언어 관점에서 컴퓨터 비트 관련 이슈 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!