[Powered by Google Translate] NATE Hardison: In de video op binaire, we zien hoe vertegenwoordigen de verzameling gehele getallen van nul tot, met alleen de cijfers nul en een. In deze video gaan we binaire notatie te gebruiken om vertegenwoordigen tekst, letters en dergelijke, ook. Waarom zouden we de moeite om dit te doen? Nou ja, onder de motorkap, een computer pas echt begrijpt nullen en enen, de binaire getallen, aangezien deze kan gemakkelijk worden weergegeven met elektromagnetische dingen. Denk bijvoorbeeld van het geheugen van uw computer als een lange reeks van gloeilampen, waarbij elke individuele lamp vertegenwoordigt een nul als het uitgeschakeld, en een een als het is ingeschakeld. In plaats van een bos van gloeilampen, sommige moderne geheugen heeft dit met behulp van condensatoren met een lage vasthouden in rekening brengen van een nul en een hoge kosten zijn een een vertegenwoordigen. Er zijn andere technieken. Toch om iets te slaan, moeten we eerst omzetten in iets dat daadwerkelijk kan worden vertegenwoordigd in de fysieke hardware. Dus laten we nadenken over hoe we zouden kunnen letters staan ​​met binaire notatie. In het Engels, we hebben 26 letters in het alfabet, A, B, C, D, en zo verder tot en met Z. We kunnen toewijzen elk van deze een aantal, zeg nul tot 25, en vervolgens met behulp van binaire notatie, kunnen we elk nummer voor te stellen als een opeenvolging van nullen en enen. Dat is niet al te slecht. Maar dat is niet genoeg zal zijn. Met dit systeem kunnen we niet echt onderscheid maken tussen hoofdletters en kleine letters. Als we willen dat onze computer in staat zijn om onderscheid te maken tussen de twee zaken, dan moeten we een extra 26 nummers. En wat te denken van punten, komma's, en andere leestekens? Op mijn toetsenbord, ik heb 32 van die, met inbegrip van alle speciale tekens zoals de dakje en het en-teken. Dat is exclusief de cijfers personages, nul tot negen, omdat we willen nog steeds in staat zijn om getallen te typen in het decimale notatie op de computer, zelfs als de computer enige echt begrijpt binaire notatie onder de motorkap. En tenslotte, zullen we dus moeten een spatie vertegenwoordigen dat onze spatiebalk werkt. Dus uitzoeken hoe tekst weer te geven op de computer duurt een beetje meer dan we op het eerste gedacht hebben. Daarnaast neem aan dat we dan komen met onze eigen codering regeling om tekens te vertegenwoordigen als getallen. Maar we besluiten om te coderen karakters zal onvermijdelijk willekeurig, zoals we eerder zagen toen we spraken over het gebruik van de nummers nul tot en met 25 van de letters staan ​​voor A tot en met Z. Waarom niet 10 dus gebruik tot en met 35 die we kunnen besparen nul tot en met negen voor het cijfer personages? Er is geen echte reden, we kozen wat leek beste voor ons is. Terug in de vroege jaren 1960, was dit een echt probleem. Verschillende computerfabrikanten werden met behulp van verschillende coderingsschema's, en dit maakte communicatie tussen verschillende machines een zeer moeilijke taak. Het American National Standards Institute, ANSI, vormden een commissie om een ​​gemeenschappelijke regeling te ontwikkelen. En in 1963, de American Standard Code for Information Interchange, beter bekend als ASCII, werd geboren. ASCII is ontworpen als een zeven-bit codering, die betekent dat ieder teken gerepresenteerd door een combinatie zeven nullen en enen. Met deze twee mogelijke waarden nul of een voor elk van de zeven bits, zijn er twee de zevende of 128 karakters die worden weergegeven met de ASCII coderen regeling. Dus 128 tekens klinkt als veel, toch? Nou, bedenk dan dat er zijn 26 kleine letters in Engels, nog eens 26 hoofdletters, 10-cijferige karakters, 32 leestekens en speciale tekens, en een spatie. Dat brengt ons op 95, dus we hebben nog 33 tekens die we kan vertegenwoordigen. Dus wat blijft er over? Nou, in de dagen van de ontwikkeling van ASCII, telex machines, die schrijfmachines die worden gebruikt om berichten versturen via een netwerk, werden op grote schaal. En deze machines hadden extra tekens gebruikt om controle vallen, bijvoorbeeld om hen te vertellen wanneer te bewegen de afdrukken hoofd naar beneden een lijn, de line feed of nieuwe lijntoets, wanneer om naar de linkermarge, de carriage return, of gewoon terug toets, en wanneer te gaan een plaats terug, de backspace karakter, enzovoort. Deze tekens worden genoemd controle karakters, en zij vormen de rest van de set ASCII. Dus als we kijken naar een ASCII-tabel, zien we dat de eerste 32 nummers, nul tot en met 31, zijn gereserveerd voor de controle tekens. Maar we zojuist hebben gezegd dat er 33 controle karakters. Wat is de deal? En het getal nul en 127, de eerste en laatste ASCII set, hebben speciale bitpatronen, alle nullen en alle die respectievelijk. De ontwerpers van ASCII daarom besloten om behouden deze nummers voor extra speciale tekens, namelijk de nul karakter en de DEL karakter. Null en DEL waren bestemd voor papieren tape bewerken, dat vroeger een gemeenschappelijke manier van opslag data. Papieren tape was letterlijk een lange strook papier, en op regelmatig op de band, zou je punch gaten voor gegevensopslag. Afhankelijk van de breedte van de band, zou elke kolom zijn kunnen vijf, zes, zeven of acht bits passen. Om een ​​nul beetje te vertegenwoordigen, zou je niets doen om de tape, zou je gewoon laten een lege ruimte. Voor een een beetje, zou je punch een gat. De null karakter zou gewoon laat een lege kolom, vermelding van alle nullen. En de DEL karakter zou slaan een kolom vol gaten door je tape. Als gevolg hiervan, kunt u gebruik maken van de DEL teken te verwijderen gegevens. Stel je voor het nemen van een ingevulde verkiezingsstemming en vervolgens ponsen alle ongeperforeerde gaten. Je vervalt de stemming, want het is onmogelijk om vertellen wat de oorspronkelijke stemmen waren. Terwijl de DEL karakter wordt nog steeds gebruikt is de moderne Delete-toets, het nul-karakter kwam om te worden gebruikt als de beëindiging karakter voor C strijkers en een aantal andere data formaten. Misschien ken je het als de backslash nul karakter, want dat is hoe we het vertegenwoordigen schriftelijk. Dus terug naar onze ASCII-tabel. Na de eerste 32 besturingstekens komen de 95 afdrukbare tekens. Er zijn een paar leuke ontwerpbeslissingen waard het hier over. Ten eerste, de decimale cijfer personages, nul tot negen, overeen met de nummers 48 tot 57, die lijkt onopvallende totdat we kijken naar de nummers 48 tot 57 geschreven in binaire notatie. Als we dat doen, dan zien we dat het cijfer karakter, nul overeenkomt met 0110000, 0110001 tot een maps, twee tot 0110010, enzovoort. Zie het patroon? Elk cijfer teken wordt toegewezen aan de bijbehorende equivalent in binaire notatie, voorafgegaan door 011. Next up, merk je dat de hoofdletters beginnen bij 65, met hoofdletters A, maar de kleine letters starten niet tot 97. Er zijn 32 ruimten tussen. Dat lijkt vreemd. Ze zijn slechts 26 letters in het alfabet. Waarom splitsen ze als deze? Nogmaals, als we kijken naar de binaire representaties, kunnen we zie een patroon. Hoofdletter A wordt vertegenwoordigd door 1000001 en kleine letter a is vertegenwoordigd door 1.100.001. Hoofdletters B wordt vertegenwoordigd door 1000010, en kleine b is vertegenwoordigd door 1.100.010. Kun je vertellen wat er hier aan de hand? Het bit dat het tweede van links, in de twee-de kwinten voor 32ths positie is 0 voor alle hoofdletters letters, en 1 voor alle kleine letters. Dat betekent dat het omzetten van hoofdletters naar kleine letters, en vice versa, is een kwestie van een eenvoudige bit flip. Dus dat brengt ons bij het einde van de ASCII-tabel. Kun je denken aan alles wat we hebben vergeten? Nou, hoe zit het met de Spaanse enye, of de Griekse of cyrillische alfabet? En wat dacht je van Chinese karakters? Er is een hoop die is weggelaten van ASCII. Er is echter een andere standaard genaamd Unicode geweest ontwikkeld zijn voor deze dekking tekens en nog veel meer. Maar dat is een onderwerp voor een andere keer. Mijn naam is Nate Hardison. Dit is CS50.