/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Binær konvertering?
Fra : Jonas Schmeltz Aaber~


Dato : 30-12-03 23:14

Jeg har i JavaScript (clientside-scripting) lavet en side, der
sender en tekst til en anden side - binært (ASCII-værdien, f.eks.
65 for "A").
Altså f.eks. "ABC" bliver sendt til side #2 som
"1000001.1000010.1000011" (A=65; 1000001).

Jeg har lagt systemet online på følgende adresse:
http://frip.dk/julledyret/sjov/bin/bin1.htm

Mit spørgsmål er som følger:
Hvordan kan jeg gøre denne konvertering (hhv. mellem
brugerinputtet og ASCII-værdien og mellem denne og de binære tal
- og tilbage igen på side #2) i ASP (VBScript).

Jeg anvender funktionen charCodeAt(x), og denne findes ikke i
VBScript - eller hvad?


Jeg vil blive glad for selv det mindste hint, der kunne hjælpe
mig videre!

MVH Jonas (aka Juke)

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Torben Brandt (30-12-2003)
Kommentar
Fra : Torben Brandt


Dato : 30-12-03 23:49

Jonas Schmeltz Aaberg skrev:
> Jeg har i JavaScript (clientside-scripting) lavet en side, der
> sender en tekst til en anden side - binært (ASCII-værdien, f.eks.
> 65 for "A").
> Altså f.eks. "ABC" bliver sendt til side #2 som
> "1000001.1000010.1000011" (A=65; 1000001).
>
> Jeg har lagt systemet online på følgende adresse:
> http://frip.dk/julledyret/sjov/bin/bin1.htm
>
> Mit spørgsmål er som følger:
> Hvordan kan jeg gøre denne konvertering (hhv. mellem
> brugerinputtet og ASCII-værdien og mellem denne og de binære tal
> - og tilbage igen på side #2) i ASP (VBScript).
>
> Jeg anvender funktionen charCodeAt(x), og denne findes ikke i
> VBScript - eller hvad?

For at lave ABC -> 100...011 så er funktionerne:
Mid("ABC", 1, 2) = "B"
Asc("B") = 66
nok interessante.
Jeg kender ingen måde at gå fra et tal til binær repræsentation, men det
skulle man også nok kunne programmere (ellers spørg).

For at lave 100...011 -> ABC så kan du bruge:
Mid("1000001.1000010.1000011", 9, 7) = "1000010"
Chr(66) = "B"
Igen skal du gå fra binær til tal, og det kan jeg heller ikke lige få
ASP/VBS til - det må man nok selv lave...

mvh Torben


Jonas Schmeltz Aaber~ (31-12-2003)
Kommentar
Fra : Jonas Schmeltz Aaber~


Dato : 31-12-03 00:22

> For at lave ABC -> 100...011 så er funktionerne:
> Mid("ABC", 1, 2) = "B"
> Asc("B") = 66
> nok interessante.
> Jeg kender ingen måde at gå fra et tal til binær repræsentation, men det
> skulle man også nok kunne programmere (ellers spørg).
>
> For at lave 100...011 -> ABC så kan du bruge:
> Mid("1000001.1000010.1000011", 9, 7) = "1000010"
> Chr(66) = "B"
> Igen skal du gå fra binær til tal, og det kan jeg heller ikke lige få
> ASP/VBS til - det må man nok selv lave...

Smukt!
Jamen det var jo lige det, jeg havde brug for, for at komme videre!
Ja, funktionen til at konvertere til binære tal kan jeg sagtens finde ud af.
Jeg har jo min JavaScript-version at gå ud fra.

Jeg tester i en løkke, om ASCII-værdien er større end hhv. 1,2,4,8,16,32
osv., trækker værdierne fra og tilføjer min bin-streng et 1 eller 0.

Eks.:

ascii_tal = 122 ' = z

bin_tal = Array([..],2048,1024,512,256,128,64,32,16,8,4,2,1)

bin_streng = ""
For i = 0 to UBound(bin_tal)
If ascii_tal > bin_tal(i) Then
ascii_tal = ascii_tal - bin_tal
bin_streng = bin_streng & "1"
Else
bin_streng = bin_streng & "0"
End If

Så kommer det f.eks. til at se sådan ud: 000001111010
Og for at fjerne de foranstående nuller kører vi:

While Left(bin_streng,1) = "0"
bin_streng = Right(bin_streng,(Len(bin_streng)-1))
Wend

og får resultatet: 1111010

Så har du den til en anden gang

MVH Jonas (aka Juke)

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jørn Andersen (31-12-2003)
Kommentar
Fra : Jørn Andersen


Dato : 31-12-03 00:48

On Tue, 30 Dec 2003 23:22:24 +0000 (UTC), Jonas Schmeltz Aaberg
<julledyret@e-mail.dk> wrote:

>Ja, funktionen til at konvertere til binære tal kan jeg sagtens finde ud af.
>Jeg har jo min JavaScript-version at gå ud fra.
>
>Jeg tester i en løkke, om ASCII-værdien er større end hhv. 1,2,4,8,16,32
>osv., trækker værdierne fra og tilføjer min bin-streng et 1 eller 0.

<SNIP udmærket funktion>
En anden mulighed (nu var jeg gået i gang ...) kunne være:

Function NumberToBin(myInt)
Dim strBin, myCount
strBin = ""
For myCount = 0 to 6
If myInt + 1 > 2^(6-myCount) Then
strBin = strBin & "1"
myInt = myInt - 2^(6-myCount)
Else
strBin = strBin & "0"
End If
Next
   NumberToBin = strBin
End function


--
Jørn Andersen,
Brønshøj

Torben Brandt (31-12-2003)
Kommentar
Fra : Torben Brandt


Dato : 31-12-03 02:52

Jørn Andersen skrev:
> En anden mulighed (nu var jeg gået i gang ...) kunne være:
>
> Function NumberToBin(myInt)
> Dim strBin, myCount
> strBin = ""
> For myCount = 0 to 6
> If myInt + 1 > 2^(6-myCount) Then
> strBin = strBin & "1"
> myInt = myInt - 2^(6-myCount)
> Else
> strBin = strBin & "0"
> End If
> Next
>    NumberToBin = strBin
> End function

Hvis det skal være helt fikst, så kunne man gøre sådan her:
Function Asc2Bin(iTal)
Asc2Bin = ""
For i = 6 To 0 Step -1
Asc2Bin = Asc2Bin & Sgn( iTal And 2^i )
Next
End function

Den er ikke meget hurtigere end Jørns, men har den fordel at argumentet
ikke ændres. F.eks er følgende - noget ulogisk - falsk:
tal = 1
Response.Write ( NumberToBin(tal) = NumberToBin(tal) )

mvh Torben


Jørn Andersen (01-01-2004)
Kommentar
Fra : Jørn Andersen


Dato : 01-01-04 04:26

On Wed, 31 Dec 2003 02:51:30 +0100, Torben Brandt
<name@domain.invalid> wrote:

>Hvis det skal være helt fikst, så kunne man gøre sådan her:
> Function Asc2Bin(iTal)
> Asc2Bin = ""
> For i = 6 To 0 Step -1
> Asc2Bin = Asc2Bin & Sgn( iTal And 2^i )
> Next
> End function

Ja, den er da cute
- jeg skulle godt nok lige have kigget en ekstra gang på, hvad din Sgn
egentlig var godt for ...

>Den er ikke meget hurtigere end Jørns, men har den fordel at argumentet
>ikke ændres. F.eks er følgende - noget ulogisk - falsk:
> tal = 1
> Response.Write ( NumberToBin(tal) = NumberToBin(tal) )

Ja, det er noget sjusk - men dog let at rette (selv om den jo ikke
bliver fiksere af den grund ...)

--
Jørn Andersen,
Brønshøj

Jørn Andersen (30-12-2003)
Kommentar
Fra : Jørn Andersen


Dato : 30-12-03 23:58

On Tue, 30 Dec 2003 22:14:09 +0000 (UTC), Jonas Schmeltz Aaberg
<julledyret@e-mail.dk> wrote:

>Jeg har i JavaScript (clientside-scripting) lavet en side, der
>sender en tekst til en anden side - binært (ASCII-værdien, f.eks.
>65 for "A").
>Altså f.eks. "ABC" bliver sendt til side #2 som
>"1000001.1000010.1000011" (A=65; 1000001).
>
>Jeg har lagt systemet online på følgende adresse:
>http://frip.dk/julledyret/sjov/bin/bin1.htm
>
>Mit spørgsmål er som følger:
>Hvordan kan jeg gøre denne konvertering (hhv. mellem
>brugerinputtet og ASCII-værdien og mellem denne og de binære tal
>- og tilbage igen på side #2) i ASP (VBScript).
>
>Jeg anvender funktionen charCodeAt(x), og denne findes ikke i
>VBScript - eller hvad?

Du kunne jo lave ASP i JScript, hvis det er for svært at lave det med
VB Script.

Tilbage til VB Script: Der findes en funktion, der hedder Asc, som
ifølge dokumentationen:
"Returns the ANSI character code corresponding to the first letter in
a string."
MyNumber = Asc("A") ' Returns 65.

AscB gør det i Unicode

Hvordan du så lige konverterer til binært på en smart måde ved jeg
ikke.


Good luck!

--
Jørn Andersen,
Brønshøj

Søg
Reklame
Statistik
Spørgsmål : 177550
Tips : 31968
Nyheder : 719565
Indlæg : 6408822
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste