Belangrijkste verschil: ondertekende tekens en niet-ondertekende tekens zijn twee gegevenstypen die worden gebruikt in C-programmering. Zowel niet-ondertekende als ondertekende tekens worden gebruikt om tekens op te slaan en bestaan uit een gebied van 8 bits. Niet-ondertekende tekens hebben waarden tussen 0 en 255, terwijl ondertekende tekens waarden hebben van -128 tot 127 (op een machine met 8-bits bytes en complementariteit met twee complementen).
C90 ingeschakeld C om trefwoorden te gebruiken die ondertekend en niet ondertekend zijn met char. Het is belangrijk op te merken dat ze alleen worden gebruikt wanneer kleine integerwaarden moeten worden afgehandeld. Ondertekend char en unsigned char zijn beide 8 bit bytes op een 16 bit machine. Ze verschillen voornamelijk in het bereik dat ze vertegenwoordigen. Het bereik van niet-ondertekende tekens is 0 tot 255, terwijl de grootte van teken of ondertekend teken -128 tot 127 is.
De transformatie van char in int-waarden gebeurt automatisch door C. Het is echter nog steeds afhankelijk van de machine die beslist dat het resultaat negatief zou zijn of niet. De hoofdletter A is gelijk aan de gehele waarde van 65.
De termen unsigned en signed gebruikt met char betekent dat als de inhoud van deze acht bits wordt geïnterpreteerd in een geheel getal, deze termen enig verschil kunnen maken. Karaktergegevenstype is standaard standaard van het type unsigned. In de modus C ++ en ANSI C is er echter een optie om ze expliciet te verklaren als ondertekend of niet-ondertekend teken. In niet-ondertekende char worden 8 bits gebruikt als databits, terwijl in geheugenrepresentatie van ondertekende char 1 bit (meest significante bit) wordt gebruikt voor ondertekend bit en 7 bits als databits worden gebruikt. Als het getekende bit 0 is, betekent dit dat het getal positief is. Als het getekende bit 1 is, is het nummer negatief.
Vergelijking tussen ondertekende tekens en niet-ondertekende tekens:
Ondertekend Char | Ongetekend char | |
reeks | -128 tot +127 | 0 tot 255 |
Typische bitbreedte | 1 byte | 1 byte |
Voorbeeld (x = 10000010) | Ondertekend teken x = -2 | Niet-ondertekende tekens = 82 |
Vertegenwoordiging | 1 bit = ondertekend bit 7 bit = databits | 8 bit = databits |
Verklaring | Ondertekend char b | Niet-ondertekende char |