Verständnisfrage: Was bedutet %11000000?

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.

Verständnisfrage: Was bedutet %11000000?

Beitragvon fpGUIcoder » 31. Okt 2015, 16:02 Verständnisfrage: Was bedutet %11000000?

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?
fpGUIcoder
 
Beiträge: 199
Registriert: 20. Okt 2015, 22:13

Beitragvon theo » 31. Okt 2015, 16:09 Re: Verständnisfrage: Was bedutet %11000000?

Aufgrund der Nullen und Einsen könnte man es vermuten.
Binär http://wiki.freepascal.org/Hexadecimal/de
theo
 
Beiträge: 7870
Registriert: 11. Sep 2006, 18:01

Beitragvon fpGUIcoder » 1. Nov 2015, 08:35 Re: Verständnisfrage: Was bedutet %11000000?

Ok, Danke!
fpGUIcoder
 
Beiträge: 199
Registriert: 20. Okt 2015, 22:13

Beitragvon Komoluna » 1. Nov 2015, 18:30 Re: Verständnisfrage: Was bedutet %11000000?

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.
Komoluna
 
Beiträge: 565
Registriert: 26. Aug 2012, 08:03
OS, Lazarus, FPC: Windows(7, 10), Linux(Ubuntu, Kali) | 
CPU-Target: 64Bit
Nach oben

Beitragvon TBug » 1. Nov 2015, 22:20 Re: Verständnisfrage: Was bedutet %11000000?

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


.
TBug
 
Beiträge: 116
Registriert: 2. Sep 2015, 10:09
OS, Lazarus, FPC: Lazaurus 1.4.2 | 
CPU-Target: Windows
Nach oben

Beitragvon Mathias » 1. Nov 2015, 23:14 Re: Verständnisfrage: Was bedutet %11000000?

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 gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3056
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Komoluna » 2. Nov 2015, 14:33 Re: Verständnisfrage: Was bedutet %11000000?

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.
Komoluna
 
Beiträge: 565
Registriert: 26. Aug 2012, 08:03
OS, Lazarus, FPC: Windows(7, 10), Linux(Ubuntu, Kali) | 
CPU-Target: 64Bit
Nach oben

Beitragvon BeniBela » 2. Nov 2015, 14:50 Re: Verständnisfrage: Was bedutet %11000000?

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)
BeniBela
 
Beiträge: 229
Registriert: 21. Mär 2009, 17:31
OS, Lazarus, FPC: Linux (Lazarus SVN, FPC 2.4) | 
CPU-Target: 64 Bit
Nach oben

Beitragvon Mathias » 2. Nov 2015, 17:52 Re: Verständnisfrage: Was bedutet %11000000?

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 gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3056
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon BeniBela » 2. Nov 2015, 19:19 Re: Verständnisfrage: Was bedutet %11000000?

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
BeniBela
 
Beiträge: 229
Registriert: 21. Mär 2009, 17:31
OS, Lazarus, FPC: Linux (Lazarus SVN, FPC 2.4) | 
CPU-Target: 64 Bit
Nach oben

Beitragvon af0815 » 2. Nov 2015, 21:48 Re: Verständnisfrage: Was bedutet %11000000?

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).
af0815
 
Beiträge: 3240
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: Win7/Linux (L stable FPC stable) per fpcup | 
CPU-Target: 32Bit (64Bit)
Nach oben

• Themenende •

Zurück zu Programmierung



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried