0x3000 - was bedeutet 0x ?
MichaelR
- javascript
Hallo,
bin über folgende JavaScript Funktion gestolpert:
function is IsCJK(CharNum){
return ((CharNum >= 0x3000)&&(CharNum < 0xd800));
}
Das 0x hat scheinbar die gleiche Wirkung wie wenn es überhaupt nicht da stünde. Warum schreibt man es (vermutlich standardmäßig??) trotzdem dazu, obwohl es scheinbar keine Bedeutung hat?
Grüße
Michael
Hallo Michael,
Das 0x hat scheinbar die gleiche Wirkung wie wenn es überhaupt nicht da stünde. Warum schreibt man es (vermutlich standardmäßig??) trotzdem dazu, obwohl es scheinbar keine Bedeutung hat?
Es kennzeichnet die Zahl als Hexadezimalzahl, also nicht zur Basis 10 sondern zur Basis 16.
Dezimal: 0 1 2 ... 8 9 10 11 .. 15 16 17
Hexadezimal: 0x0 0x1 0x2 ... 0x8 0x9 0xA 0xB .. 0xF 0x10 0x11 .. 0x1A
Gruss, Thoralf
Hi Thoralf,
Das 0x hat scheinbar die gleiche Wirkung wie wenn es überhaupt nicht da stünde. Warum schreibt man es (vermutlich standardmäßig??) trotzdem dazu, obwohl es scheinbar keine Bedeutung hat?
Es kennzeichnet die Zahl als Hexadezimalzahl, also nicht zur Basis 10 sondern zur Basis 16.
Dezimal: 0 1 2 ... 8 9 10 11 .. 15 16 17
Hexadezimal: 0x0 0x1 0x2 ... 0x8 0x9 0xA 0xB .. 0xF 0x10 0x11 .. 0x1A
Aha interessant!
Mich hatte die Null nur etwas verwirrt, weil es ja auch die Schreibung für "normale" hex-Werte gibt:  
Noch eine Anschlussfrage: mein kurzer Test hatte ergeben, dass es in der JavaScript Funktion zum gleichen Ergebnis kommt, wenn man das 0x weglässt (also nur 3000) schreibt.
Was wäre aber "standard-konformer" bzw. "schönerer" js-Code?
Grüße + Danke
Michael
Moin,
Mich hatte die Null nur etwas verwirrt, weil es ja auch die Schreibung für "normale" hex-Werte gibt:  
Das eine hat mit dem anderen nichts zu tun. Was du da hast ist eine HTML-Zeichenreferenz für das Zeichen mit dem Code 0x3000.
Noch eine Anschlussfrage: mein kurzer Test hatte ergeben, dass es in der JavaScript Funktion zum gleichen Ergebnis kommt, wenn man das 0x weglässt (also nur 3000) schreibt.
Es gibt nicht das gleiche Ergebnis. So wie der Code war prüft er ob der übergebene Wert zwischen 0x3000 und 0xd800 liegt. Wenn du die 0x vor der 3000 weglässt würde er nur noch überprüfen ob der Wert zwischen 3000 und 0xd800 liegt. (Wenn du die 0x vor der d800 weglässt wird das als Variablenname interpretiert.)
Hallo Michael,
Henryk hat das wesentliche schon gesagt.
Noch eine Anschlussfrage: mein kurzer Test hatte ergeben, dass es in der JavaScript Funktion zum gleichen Ergebnis kommt, wenn man das 0x weglässt (also nur 3000) schreibt.
Nur ein kurzes Beispiel, c&p-tauglich und funktioniert. ;)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>New Document</title>
</head>
<body>
<script language="JavaScript">
alert( 0x10 );
alert( 10 );
</script>
</body>
</html>
Gibt einmal 16 und einmal 10, ist also mitnichten das gleiche Ergebnis.
Gruss, Thoralf