Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 01:54

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Kurze Erklärung bzgl. JavaScript

Discussion on Kurze Erklärung bzgl. JavaScript within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1
 
Kraizy​'s Avatar
 
elite*gold: 0
The Black Market: 471/0/0
Join Date: Apr 2010
Posts: 9,696
Received Thanks: 1,811
Kurze Erklärung bzgl. JavaScript

Moin,

kann mir jemand kurz sagen, was genau "& 255" und "<< 8" in dieser Zeile macht?

PHP Code:
(strVar.charCodeAt(intIndex) & 255) << 
Muss es nämlich in .NET umprogrammieren.
Kraizy​ is offline  
Old 02/04/2016, 13:31   #2
dotCom
 
Devsome's Avatar
 
elite*gold: 9842
The Black Market: 107/0/0
Join Date: Mar 2009
Posts: 16,869
Received Thanks: 4,686
Hoffe das dir das hilft.

Code:
intIndex = 0; // Nimmt das 'd'evsome
strVar = "devsome";
var buffer = (strVar.charCodeAt(intIndex) & 255) << 8;
// 255  Verändert nichts
// 8    8ter Potenz
// Ergebnis ohne die 8 oder mit der 0 = 100
// Zahl |   Ergebnis
// 1    |   200
// 2    |   400
// 3    |   800
// 4    |   1600
// 5    |   3200
// 6    |   6400
// 7    |   12800
// 8    |   25600
alert(buffer);
Devsome is offline  
Old 02/04/2016, 14:07   #3
 
Kraizy​'s Avatar
 
elite*gold: 0
The Black Market: 471/0/0
Join Date: Apr 2010
Posts: 9,696
Received Thanks: 1,811
Wenn ich mir die Ergebnisse so anschaue...

PHP Code:
97 
Mit << 8 komme ich auf 24832 -> 97 * 256 = 24832
Klappt mit allen CharCodes. Wenn ich jedoch eines benutze, welches größer als 255 ist, z.B. Ā (CharCode: 256), dann kommt bei alert(buffer); 0 raus.
Das heißt, ich könnte einfach eine If Abfrage machen, ob CharCode > 255 dann einfach 0 setzen, andernfalls einfach mit 256 multiplizieren. Oder irre ich mich da gerade?
Kraizy​ is offline  
Old 02/04/2016, 14:13   #4
dotCom
 
Devsome's Avatar
 
elite*gold: 9842
The Black Market: 107/0/0
Join Date: Mar 2009
Posts: 16,869
Received Thanks: 4,686
Quote:
Originally Posted by Kraizy​ View Post
Wenn ich mir die Ergebnisse so anschaue...

PHP Code:
97 
Mit << 8 komme ich auf 24832 -> 97 * 256 = 24832
Klappt mit allen CharCodes. Wenn ich jedoch eines benutze, welches größer als 255 ist, z.B. Ā (CharCode: 256), dann kommt bei alert(buffer); 0 raus.
Das heißt, ich könnte einfach eine If Abfrage machen, ob CharCode > 255 dann einfach 0 setzen, andernfalls einfach mit 256 multiplizieren. Oder irre ich mich da gerade?
Also ist die 255 für den CharCode index, ist das nicht wonach du dann gesucht hast um es umzubauen :3 ?
Devsome is offline  
Old 02/04/2016, 14:33   #5
 
Kraizy​'s Avatar
 
elite*gold: 0
The Black Market: 471/0/0
Join Date: Apr 2010
Posts: 9,696
Received Thanks: 1,811
Naja die gesamte "Funktion" schaut so aus:

PHP Code:
for (var ap 0ap anap++) {
     
ax[ap] = (av.charCodeAt(ap 4) & 255) + ((av.charCodeAt(ap 1) & 255) << 8) + ((av.charCodeAt(ap 2) & 255) << 16) + ((av.charCodeAt(ap 3) & 255) << 24);

Ich wusste halt nicht was die & 255 und << 8 bzw. 16 und 24 auf sich hatten. Und habe soeben erst rausgefunden, dass wenn ich einfach den jeweiligen charCode(index) mit 256 multipliziere, aufs selbe Ergebnisse komme.

PHP Code:
a97
97 
<< 8
//Ergebnis: 24.832

98
98 
<< 8
//Ergebnis: 25.008 
Die selben Ergebnisse bekomme ich wie gesagt auch, wenn ich einfach 97 * 256 bzw 98 * 256 rechne.

Bei << 16 wäre es dann:

PHP Code:
97
97 
<< 16
//Ergebnis: 6.356.992

98
98 
<< 16
//Ergebnis: 6.422.528 
Hier bekomme ich auch wieder die selben Ergebnisse, wenn ich einfach 97 * 65.536 bzw 98 * 65.536 rechne. Die Logik dahinter verstehe ich zwar immer noch nicht, aber wenns so funktioniert, dann lasse ich das einfach so..
Kraizy​ is offline  
Old 02/04/2016, 15:02   #6
dotCom
 
Devsome's Avatar
 
elite*gold: 9842
The Black Market: 107/0/0
Join Date: Mar 2009
Posts: 16,869
Received Thanks: 4,686
d.h Problem gelöst ?

Code:
strVar = "Āpfel";
gibt 0 aus, da der Buchstabe über liegt.

Man kann es wie du dann schon raus gefunden hast auf 2 Varianten machen.
Würde trotzdem die erste nehmen, somit prüft man ob der Char innerhalb des vorgegeben ISO liegt & berechnet das Ergebnis immer wieder *2 so oft wie die Zahl nach dem << (ich würde mal eine Art for-schleife sagen)

Code:
intIndex = 0; // Nimmt den ersten Buchstaben
strVar = "Āpfel";
var buffer = (strVar.charCodeAt(intIndex) & 255) << 2;
// 255  The ISO-Latin-1 codeset ranges from 0 to 255
// Zahl |   Ergebnis
// 0    |   97
// 1    |   194
// 2    |   388
// 3    |   776
// 4    |   1552
// 5    |   3104
// 6    |   6208
// 7    |   12416
// 8    |   24832
alert(buffer);
Devsome is offline  
Thanks
1 User
Old 02/04/2016, 15:07   #7
 
Kraizy​'s Avatar
 
elite*gold: 0
The Black Market: 471/0/0
Join Date: Apr 2010
Posts: 9,696
Received Thanks: 1,811
Quote:
Originally Posted by Devsome View Post
berechnet das Ergebnis immer wieder *2 so oft wie die Zahl nach dem << (ich würde mal eine Art for-schleife sagen)
So könnte man es natürlich auch machen. Und ja, Problem ist anscheinend gelöst

Edit: Grad gemerkt, dass ich in .NET genauso einfach "int i = 97 << 8" benutzen kann..
Kraizy​ is offline  
Thanks
1 User
Old 02/05/2016, 11:09   #8
 
NotEnoughForYou's Avatar
 
elite*gold: 0
Join Date: Jun 2010
Posts: 3,406
Received Thanks: 2,024
?

Bitwise And mit 255 und shift um 8
NotEnoughForYou is offline  
Reply


Similar Threads Similar Threads
Kurze OT Frage bzgl. Skype
09/21/2015 - Off Topic - 16 Replies
Jo, wollte wissen ob Skype bei euch geht. Bei einem Kollegen und mir läd es einfach die ganze zeit und er versucht sich zu verbinden aber es kommt nix. Ist das nur Zufall oder auch bei euch so?
kurze noob frage bzgl. DT
01/02/2013 - Metin2 - 6 Replies
Hi, vorab ich habe schon sehr lange nicht mehr Metin2 gespielt. Hab nun mal wieder etwas gespielt. Ich war hauptsächlich DT um mir immer wieder meine Sachen zu uppen beim DT-Schmied. Nun meine Frage: Ich sehe häufig, dass manche High's (im 80/90er bereich) einfach wie aus dem Nichts in der 4.Ebene (Schlüsselebene) auftauchen, obwohl sie auf den vorherigen Ebenen überhaupt nicht anwesend waren. Vielleicht bilde ichs mir auch immer ein, aber ich glaube ein 99er z.B. würde mir schon in den...
Kurze Erklärung zu Hacks
10/17/2010 - Wolfteam - 6 Replies
Ich glaube irgendjemand muss nocheinmal ein Tutorial machen, wie man einen WolfTeam Hack benutzt das werde ich übernehmen da zuviele Leute in Foren schreiben dass sie den Hack nicht öffnen können blablabla ... Als erstes sucht ihr euch einen Wolfteam hack der funktioniert z.B. der hier : http://www.elitepvpers.com/forum/wolfteam/788933-w olfteam-wallhack-gefunden.html Downloadet ihn (man benötigt WinRar) und schaltet am besten eueren Antiviren scanner aus da soziemlich jeder Hack als...



All times are GMT +1. The time now is 01:55.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.