Heim >Backend-Entwicklung >Golang >Analyse von Problemen im Zusammenhang mit Computerbits aus der Perspektive der Go-Sprache

Analyse von Problemen im Zusammenhang mit Computerbits aus der Perspektive der Go-Sprache

Go语言进阶学习
Go语言进阶学习nach vorne
2023-07-21 11:52:271232Durchsuche

Ein Stück Code

Dieses Mal nehme ich die Go-Sprache als Beispiel. Die Go-Sprache ist eine C-ähnliche Sprache und einige der zugrunde liegenden Ebenen sind sehr ähnlich!

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))      //一个字节
}

Ausführungsergebnisse

Analyse von Problemen im Zusammenhang mit Computerbits aus der Perspektive der Go-Sprache

Es gibt mehrere Fragen

Wenn ich eine Variable benenne, verwende ich das Zeichen a, warum Ist der Dezimalwert 97? Binär ist 1100001?

Warum heißt die Variable c 98, kann aber b ausgeben?

Bits und Bytes

Um die oben genannten Probleme zu verstehen, müssen Sie noch die wesentlichen Probleme verstehen.

Unser Programm läuft schließlich im Speicher.

Und unser Speichermodul ist wahrscheinlich so.

Analyse von Problemen im Zusammenhang mit Computerbits aus der Perspektive der Go-Sprache

Das Wesen eines Memory Sticks ist im Wesentlichen eine elektronische Komponente. Schließlich gibt es nur zwei Zustände, eingeschaltet (1), nicht eingeschaltet (0).

Bits

eine elektronische Komponente, ist ein Bit.

Analyse von Problemen im Zusammenhang mit Computerbits aus der Perspektive der Go-Sprache

Bytes

Und ein Byte entspricht 8 Bits , 1字节=8位 .

Analyse von Problemen im Zusammenhang mit Computerbits aus der Perspektive der Go-Sprache

Ein Bit ist ein 0 oder 1, was binär ist, nicht-0 ist 1.

Ein Byte besteht aus 8 Nullen oder Einsen Leute. 00000000Normalerweise arbeitet Sprache im Allgemeinen nur mit Bytes und selten an Ort und Stelle.

Warum a 97 istObwohl wir das oben Gesagte wissen, bedeutet ein Bit

ein eingeschaltetes

oder kein Strom s Elektronische Komponenten .

Ein Byte stellt eine Kombination aus 8 oder oder stromlosen elektronischen Bauteilen dar. Aber das löst das eigentliche Problem nicht. Ich möchte eine 10 speichern, eine 20 hinzufügen und Additionsberechnungen durchführen. ? ?

Zu diesem Zeitpunkt muss es also eine Regel geben: Was leuchtet oder nicht leuchtet, bedeutet, was es ist.

Da ist es also

ASCIIDiese Spezifikation, die kleinste Einheit dieser Spezifikation ist ein Byte, das heißt, ASCII这个规范,这个规范的最小单位是字节,也就是同时管理8个0或1

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

8个二进制表示方式是00000000 verwaltet 8 0er oder 1er gleichzeitig

.

Analyse von Problemen im Zusammenhang mit Computerbits aus der Perspektive der Go-Sprache

For Beispiel: Das erste Byte besteht aus den ersten acht Bits. Wenn alle 0 sind, bedeutet dies, dass die Dezimalzahl 0 ist.

8 Die binäre Darstellung ist

00000000🎜🎜. 🎜🎜🎜🎜🎜🎜🎜 legt außerdem fest, dass beim Zählen vom Ende aus, wenn das Ende leuchtet und die anderen 7 nicht leuchten, die Dezimalzahl 1 bedeutet. 🎜🎜🎜

00000001 Code><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

Analyse von Problemen im Zusammenhang mit Computerbits aus der Perspektive der Go-Sprache

等等等等,通过字节组织位,通过每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,表示的符号是aAnalyse von Problemen im Zusammenhang mit Computerbits aus der Perspektive der Go-Sprache


Analyse von Problemen im Zusammenhang mit Computerbits aus der Perspektive der Go-Sprache

Spezifische binäre entsprechende Symbole oder Zahlen:🎜https:/ / baike.baidu.com/item/ASCII/309296?fromtitle=ASCII%E7%BC%96%E7%A0%81&fromid=3712529&fr=aladdin🎜🎜

🎜By query🎜🎜ASCII🎜🎜kann bekannt sein. 🎜🎜

🎜letters Die Binärdatei von a ist 🎜🎜0110 0001🎜🎜, Dezimalzahl ist 🎜🎜97🎜🎜, das dargestellte Symbol ist 🎜🎜a🎜🎜. 🎜🎜🎜🎜🎜

Also seien wir gleich zu Beginn ehrlich!

Warum kann 98 b ausgeben? Das liegt daran, dass ASCIIASCII,因为98代表的就是字母b,就是二进制0110 0010

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

Analyse von Problemen im Zusammenhang mit Computerbits aus der Perspektive der Go-Sprache

目前的编码方向

其实一个字节,8位,如果全部亮灯,就是11111111,他的十进制是255, weil 98 den Buchstaben b darstellt, der binär ist0110 0010

.

only Die Ausgabemethode ist jedoch unterschiedlich. 🎜🎜

Analyse von Problemen im Zusammenhang mit Computerbits aus der Perspektive der Go-Sprache🎜

🎜Aktuelle Kodierungsrichtung🎜🎜

🎜 In Tatsächlich ist ein Byte, 8 Bit, wenn alle Lichter leuchten, 🎜🎜11111111🎜🎜, seine Dezimalzahl ist 🎜🎜255🎜🎜, theoretisch kann es 255 Symbole unterstützen. 🎜🎜🎜🎜Für englischsprachige Länder sollte es ausreichen. Ein Buchstabe ist 8 Bits und ein Byte sind 5 Bytes. 🎜🎜

Aber heutzutage sind Computer zu einem riesigen Baum geworden, Japan verwendet sie und die Gesamtzahl der Zeichen in jedem Land beträgt nicht mehr nur 255.

Es ist also wie Chinas abgeleitet GBKGBK等一些编码,各种编码都是基于ASCII扩充的。

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

但是GBK和其他编码又不通用,所以现在又衍生出utf-8 und einige andere Codes, verschiedene Codes basieren auf ASCII

🎜 erweitert. 🎜🎜

🎜ASCII🎜 🎜Belegt ein Byte, 8 Bits, dann I🎜🎜GBK🎜🎜 ist nicht genug. Es gibt Zehntausende chinesischer Schriftzeichen. Dann belege ich zwei Bytes, 16 Bit, 16 0er oder 1er. Ich sollte damit auskommen. Wenn nicht , drei Bytes, 24 0er oder 1er, drei Bytes dezimal sind angekommen 🎜🎜16777215🎜🎜, zig Millionen, genug, um die Symbole und Zeichen verschiedener Länder zu bewahren. 🎜🎜

🎜But 🎜🎜GBK code>🎜🎜 ist bei anderen Codes nicht üblich, daher wird er jetzt abgeleitet 🎜🎜<code style="box-sizing: border-box;font-family: var(--monospace);vertical-align: initial;border- Breite: 1 Pixel; Randstil: einfarbig; Randfarbe: RGB (231, 234, 237); Hintergrundfarbe: RGB (243, 244, 244); Randradius: 3 Pixel; Auffüllung rechts: 2 Pixel; Auffüllung left: 2px;font-size: 0.9em;">utf-8🎜🎜 und andere Codes umfassen Codes aus verschiedenen Ländern. 🎜🎜

目前 UTF-8 Größe : border-box;break-after: Vermeidungsseite;break-inside: Vermeidung;Schriftgröße: 1,75em;Rand oben: 1rem;Rand unten: 1rem;Schriftstärke: fett;Zeilenhöhe: 1,225; Cursor: Text;Padding-Bottom: 0,3em;Border-Bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;font-family: 'Open Sans', 'Clear Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;text-align: start;">utf-8是一个最好的编码,基本已经支持所以计算机。


总结

本篇主要是理解计算机内存的本质,1字节=8位,1位=一个通电or没通电的电子元件,通过不同的00101010总结

本篇主要是理解计算机内存的本质,

1字节=8位

🎜,🎜🎜1位=一个通电or没通电的电子元件🎜🎜,通过不同的🎜🎜00101010🎜🎜表示不同的符号。🎜🎜🎜

Das obige ist der detaillierte Inhalt vonAnalyse von Problemen im Zusammenhang mit Computerbits aus der Perspektive der Go-Sprache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:Go语言进阶学习. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen