Verständnisfrage: Was bedutet %11000000?

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.
Antworten
fpGUIcoder
Beiträge: 199
Registriert: Di 20. Okt 2015, 23:13

Verständnisfrage: Was bedutet %11000000?

Beitrag von fpGUIcoder »

In einem Quelltext habe ich diesen Codeausschnitt gefunden:

Code: Alles auswählen

 
function UTF8CharacterLength(p: PChar): integer;
begin
  if p <> nil then
  begin
    if ord(p^) < %11000000 then  //  00000000-01111111
    begin
      // regular single byte character (#0 is a character, this is pascal ;)
      Result := 1;
    end
    else if ((ord(p^) and %11100000) = %11000000) then  //  11000010-11011111
    begin
      // could be 2 byte character
      if (ord(p[1]) and %11000000) = %10000000 then
        Result := 2
      else
        Result := 1;
    end
    else if ((ord(p^) and %11110000) = %11100000) then  //  11100000-11101111
    begin
 



Was heißt %<Zahl>

Und was bedeuten der Kommentare dahinter?

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Verständnisfrage: Was bedutet %11000000?

Beitrag von theo »

Aufgrund der Nullen und Einsen könnte man es vermuten.
Binär http://wiki.freepascal.org/Hexadecimal/de

fpGUIcoder
Beiträge: 199
Registriert: Di 20. Okt 2015, 23:13

Re: Verständnisfrage: Was bedutet %11000000?

Beitrag von fpGUIcoder »

Ok, Danke!

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: Verständnisfrage: Was bedutet %11000000?

Beitrag von Komoluna »

Ich kenne % immer als modulo (Rest einer Division). Aber das ist dann ein binärer operator.
In diesem Fall wird % unär verwendet, ich glaube theo liegt mit seiner Vermutung richtig.

MFG

Komoluna
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

TBug
Beiträge: 177
Registriert: Mi 2. Sep 2015, 11:09
OS, Lazarus, FPC: Lazaurus 2.2.4 FPC 3.2.2
CPU-Target: Windows 32/64bit

Re: Verständnisfrage: Was bedutet %11000000?

Beitrag von TBug »

Komoluna hat geschrieben:Ich kenne % immer als modulo (Rest einer Division). Aber das ist dann ein binärer operator.
In diesem Fall wird % unär verwendet, ich glaube theo liegt mit seiner Vermutung richtig.

Das ist doch keine Vermutung, sondern ein Fakt, dass in Pascal mit % binäre Zahlen dargestellt werden.

Eine binäre Zahl wird in der Programmiersprache Pascal mit dem Prozentzeichen (%) als Vorzeichen dargestellt.

Auch nachzulesen unter:
http://wiki.freepascal.org/Binary_numeral_system/de


.

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Verständnisfrage: Was bedutet %11000000?

Beitrag von Mathias »

Das ist doch keine Vermutung, sondern ein Fakt, dass in Pascal mit % binäre Zahlen dargestellt werden.

Das ist so: http://www.freepascal.org/docs-html/ref/refse6.html
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: Verständnisfrage: Was bedutet %11000000?

Beitrag von Komoluna »

TBug hat geschrieben:Das ist doch keine Vermutung, sondern ein Fakt, dass in Pascal mit % binäre Zahlen dargestellt werden.


Wusste ich noch nicht... Man lernt eben nie aus.

MFG

Komoluna
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

BeniBela
Beiträge: 308
Registriert: Sa 21. Mär 2009, 17:31
OS, Lazarus, FPC: Linux (Lazarus SVN, FPC 2.4)
CPU-Target: 64 Bit

Re: Verständnisfrage: Was bedutet %11000000?

Beitrag von BeniBela »

Da implementieren sie so einen Unsinn, aber keine multiline-Strings

Als nächstes kommt noch das Sorf (nur bis "sorfteen minus one" lesen und dann nachdenken)

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Verständnisfrage: Was bedutet %11000000?

Beitrag von Mathias »

Da implementieren sie so einen Unsinn, aber keine multiline-Strings

Wieso sollte das ein Unsinn sein ?
Hättest du eine bessere Idee für Binäre Zahlen ?

So nebenbei hätte ich auch gerne Multiline-Strings.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

BeniBela
Beiträge: 308
Registriert: Sa 21. Mär 2009, 17:31
OS, Lazarus, FPC: Linux (Lazarus SVN, FPC 2.4)
CPU-Target: 64 Bit

Re: Verständnisfrage: Was bedutet %11000000?

Beitrag von BeniBela »

Mathias hat geschrieben:
Da implementieren sie so einen Unsinn, aber keine multiline-Strings

Wieso sollte das ein Unsinn sein ?
Hättest du eine bessere Idee für Binäre Zahlen ?

So nebenbei hätte ich auch gerne Multiline-Strings.


Die Prioritisierung ist Unsinn

Ganz weglassen

Alles hexadezimal schreiben ist auch kein großer Aufwand

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Verständnisfrage: Was bedutet %11000000?

Beitrag von af0815 »

Ich bin mir ganz sicher, das % Zeichen als Zeichen für Binär war in Turbo Pascal 3 unter CP/M 80 noch nicht drinnen :-)

BTW: Das Handbuch gibt es hier zum nachlesen
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten