Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

[delphi] Variabelen

Pagina: 1
Acties:
  • 531 views

  • kloas_wokkel
  • Registratie: Juli 2008
  • Laatst online: 23-12-2022
Hallo,
Ik heb een vraagje over delphi ik wil graag het volgende:
Ik heb een variabale xx0xxxxx (waarbij een x een nul of 1 is) en nu wil ik graag van de 0 een 1 maken zonder de andere eenen en nullen te veranderen.
Is dit mogelijk?
Alvast bedankt!

  • Lorn
  • Registratie: Maart 2000
  • Laatst online: 13-01 11:03

Lorn

I have a bad feeling...

Je bedoelt dat je een variabele hebt met daarin de waarde xx0xxxxx? Is het een binair getal of is het een string? Staat de 0 altijd op dezelfde plaats?

Iets meer informatie is wel noodzakelijk om een zinnig antwoord op je vraag te geven...

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 02:24

Creepy

Tactical Espionage Splatterer

Heb je een variabele die zo heet? Of is het de inhoud van een variabele? En wat voor type is die variabele dan? Het scheelt nogal of het een String of een Integer is bijvoorbeeld ;)

Overigens kan je prima die waarde aanpassen (of dat bit omzetten, ik gok dat je dat wilt namelijk). Wat heb je zelf al geprobeerd? Wat lukte daar niet mee? We gaan er er vanuit dat je al het 1 en ander zelf hebt geprobeerd en dat je dat ook aangeeft in je startpost. Zie ook Programming Beleid - De Quickstart. Kan je wat meer informatie geven?

Als je inderdaad een bit wilt omzetten dan gok ik dat dit een schoolopdracht is en dat je leraar je hier prima mee verder kan helpen en anders moet je voor de gein eens in Programming FAQ - Getallen en talstelsels kijken ;)

[ Voor 17% gewijzigd door Creepy op 07-10-2008 16:17 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • kloas_wokkel
  • Registratie: Juli 2008
  • Laatst online: 23-12-2022
Creepy schreef op dinsdag 07 oktober 2008 @ 16:15:
Overigens kan je prima die waarde aanpassen (of dat bit omzetten, ik gok dat je dat wilt namelijk). Wat heb je zelf al geprobeerd? Wat lukte daar niet mee? We gaan er er vanuit dat je al het 1 en ander zelf hebt geprobeerd en dat je dat ook aangeeft in je startpost. Zie ook Programming Beleid - De Quickstart. Kan je wat meer informatie geven?

Als je inderdaad een bit wilt omzetten dan gok ik dat dit een schoolopdracht is en dat je leraar je hier prima mee verder kan helpen en anders moet je voor de gein eens in Programming FAQ - Getallen en talstelsels kijken ;)
Hallo,
Ten eerste nee dit is geen schoolopdracht ;)
De bedoeling is om in de toekomst via de serieele poort een ledbordje aangestuurd te krijgen (baco ledmatrix)
om 1 rij ledjes aan te sturen moet je het volgende dr in gooien
%00000000
nu wil ik dus zeg maar ledjes aan en uit zetten (dat maar om te beginnen en dan verder)
nou leek het mij dat je die %00000000 moet vervangen voor een variabele zodat je m aan kunt passen.
en als ik nou bijvoorbeeld de derde nul naar een 1 maak niet die hele reeks hoef aan te passen, zodat als je al wat eerder ingevuld hebt dat dit bewaard blijft.
hoop dat je t zo snapt...

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 02:24

Creepy

Tactical Espionage Splatterer

Wat bedoel je met "dr in gooien". Hoe stuur je dat ding aan? Ik gok dat je er direct een byte naar toe kunt schrijven. M.b.v. een binaire OR kan je een specifiek bit van die byte aan zetten, en met een binaire NOT weer uit. Zoek deze termen voor de gein eens op ;) En die tutorial over tallenstelels die ik al linkte gaat je ook van pas komen :)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • kloas_wokkel
  • Registratie: Juli 2008
  • Laatst online: 23-12-2022
het bordje word nog aangestuurd door een microcontroller.
en de pc "vertelt" dan aan de microcontroller welke leds moeten branden
Misschien handig de code in de pic : (in basic)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
A2 = 0 : A1 = 0 : A0 = 0

SHout data_up,Clock,MSBFirst,[%01000101,%11110100,%01000000,%00000000]
enable_ = 0
Pulsout Strobe,1 ' latch to output register
delayus delay
enable_ = 1

A2 = 1 : A1 = 1 : A0 = 1
SHout data_up,Clock,MSBFirst,[%11000101,%11110100,%11000000,%10000000]
enable_ = 0
Pulsout Strobe,1 ' latch to output register
delayus delay
enable_ = 1

  • kloas_wokkel
  • Registratie: Juli 2008
  • Laatst online: 23-12-2022
hmm ik heb nu iets ( mooi stukje code)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
procedure TForm1.Button1Click(Sender: TObject);
var
x1,x2,x3,x4,x5,x6,x7,x8,rij1 : double ;
begin
If checkbox1.checked= true then
x1:= 1
else x1:=0;

 If checkbox6.checked= true then
 x2:= 1
 else x2:=0;

  If checkbox11.checked= true then
  x3:= 1
  else x3:=0;

   If checkbox16.checked= true then
   x4:= 1
   else x4:=0;

     If checkbox21.checked= true then
     x5:= 1
     else x5:=0;

      If checkbox26.checked= true then
      x6:= 1
      else x6:=0;

       If checkbox31.checked= true then
       x7:= 1
       else x7:=0;

        If checkbox36.checked= true then
        x8:= 1
        else x8:=0;

 rij1:= x8+(x7*10)+(x6*100)+(x5*1000)+(x4*10000)+(x3*100000)+(x2*1000000)+(x1*10000000) ;
 showmessage(floattostr(rij1));
end;

is dit een omslachtige manier ? en kan dit dan nog korten/beter ?

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 02:24

Creepy

Tactical Espionage Splatterer

Pak nu aub die FAQ over tallenstelsels er eens bij en bekijk dan eens de info over het binaire tallenstelsel/ Dat gaat over 0'en en 1tjes. Ik zeg het niet voor niets ;)

Tip nummero zoveel: 100 decimaal is niet hetzelfde als 100 binair!

Ik ga het expres niet voor je voorkauwen, want leren moet je zelf doen ;) Hierbij nog een klein stukje code.
Delphi:
1
2
3
4
5
6
7
8
9
10
var
  lampjes: byte;
begin
  lampjes := 0;
  if (checkbox1.checked) then
    lampjes := lampjes OR 0b00000001;
  
  if (checkbox2.checked) then
    lampjes := lampjes OR 0b00000010;
end;

offtopic:
Hmm... eigenlijk al volledig voorgekauwd :+
Ik weet niet meer uit m'n hoofd of 0b in Delphi kan, maar anders uiteraard gewoon vervangen door de decimale waarde (en hoe je dat omrekent staat uitgelegd in die tallenstelsels FAQ ;) )

Rekenen met getallen en dan zeker het binaire tallenstelsel is de basis der basis van electronica, computers en dus ook informatica. Nagenoeg elke informatica/electronica opleiding (of elk goed boek dat je basisbeginselen aanleert) zal je dit aanleren.

"There are only 10 kinds of people, those who understand binary and those who don't" :P

[ Voor 21% gewijzigd door Creepy op 07-10-2008 18:06 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • kloas_wokkel
  • Registratie: Juli 2008
  • Laatst online: 23-12-2022
hmm je bedoelt eerst de waarde optellen decimaal (1,2,4,8,16 enz.)
en dan later omzetten naar binair ?

  • Reinstein
  • Registratie: Juni 2003
  • Laatst online: 08-07-2021

Reinstein

Half-Nul

Je hoeft het niet om te zetten naar binair dat kan niet. Het punt is met talsteles dat je een waarde op verschillende manieren kunt weergeven. Dat weergeven is puur voor mensen bedoelt, omdat het dan voor mensen makkelijker te begrijpen is.

Voobeeld:
167 (decimaal) = A7 (hexadecimaal) = 10100111 (binair)

(hopenlijk is het een beetje duidelijk)

PC based oscilloscope


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
*kuch* :Y)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • kloas_wokkel
  • Registratie: Juli 2008
  • Laatst online: 23-12-2022
ja ik weet wel hoe je kan tellen binair en omzetten etc.
maar als ik nou dit stukje code pak:
code:
1
2
 if (checkbox1.checked) then
    lampjes := lampjes OR 0b00000001;


dan maakt ie de variabele lampjes lampjes of 0b00000001;
maar wat als ik de 2 nullen na de b al 1 heb gemaakt dan gaat dat hier toch weer verloren?

en t display telt niet binair maar gewoon een "1" is een led aan en een "0" is een led uit

[ Voor 12% gewijzigd door kloas_wokkel op 07-10-2008 18:50 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
kloas_wokkel schreef op dinsdag 07 oktober 2008 @ 18:49:
en t display telt niet binair maar gewoon een "1" is een led aan en een "0" is een led uit
dat is nét waar het stukje representatie over gaat. Een "56" is 3 leds aan en 5 leds uit, want 56 is binair: 00111000.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • kloas_wokkel
  • Registratie: Juli 2008
  • Laatst online: 23-12-2022
ja maar daar heb ik toch niets aan ? dat bord wil gewoon 8 nullen of 1-en hebben
of zit ik dr nou echt compleet naast ?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
kloas_wokkel schreef op dinsdag 07 oktober 2008 @ 19:07:
ja maar daar heb ik toch niets aan ? dat bord wil gewoon 8 nullen of 1-en hebben
En hoe denk je dat het getal 56 wordt opgeslagen / verstuurd in een computer? Juistem! Als 00111000 ;)
56 is dan ook enkel een decimale representatie van het binaire getal 00111000. En omdat wij mensen wat moeite hebben met binair t.o.v. decimaal werken we meestal decimaal (of hexadecimaal).
kloas_wokkel schreef op dinsdag 07 oktober 2008 @ 19:07:
of zit ik dr nou echt compleet naast ?
:Y ;)

[ Voor 20% gewijzigd door RobIII op 07-10-2008 19:10 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • 2playgames
  • Registratie: Februari 2005
  • Laatst online: 01-06 15:19
dan maakt ie de variabele lampjes lampjes of 0b00000001;
niet dus. die OR doet voor elk cijfer in het getal het volgende:
is een van de twee 1? dan 1, anders 0
dus 0101 OR 1100 wordt 1101

  • kloas_wokkel
  • Registratie: Juli 2008
  • Laatst online: 23-12-2022
2playgames schreef op dinsdag 07 oktober 2008 @ 19:12:
[...]

niet dus. die OR doet voor elk cijfer in het getal het volgende:
is een van de twee 1? dan 1, anders 0
dus 0101 OR 1100 wordt 1101
Aha net als met een OR poort dus dat maakt het al een stuk duidelijker ! :*)

[ Voor 79% gewijzigd door kloas_wokkel op 07-10-2008 19:15 ]


  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 14-11 15:44

Onbekend

...

Het programma is altijd binair.
Maar voor de gebruiker wordt het gemakkelijker gemaakt om gewoon het getal 201 in te vullen i.p.v. hexadecimaal C9 of binair 11001001 steeds te typen.

[ Voor 4% gewijzigd door Onbekend op 07-10-2008 19:16 ]

Speel ook Balls Connect en Repeat


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 15-11 15:54
Dit gaat echt richting niveau nul. Als de TS nou eerst eens het verschil tussen een string en een getal opzoekt is 'tie al een heel eind verder.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • kloas_wokkel
  • Registratie: Juli 2008
  • Laatst online: 23-12-2022
Ik weet niet meer uit m'n hoofd of 0b in Delphi kan, maar anders uiteraard gewoon vervangen door de decimale waarde (en hoe je dat omrekent staat uitgelegd in die tallenstelsels FAQ ;) )
0b werkt dus niet. dus moest ik dat vervangen door een decimaal getal ?
word dat dan 11 ?

[ Voor 59% gewijzigd door kloas_wokkel op 07-10-2008 20:19 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 02:24

Creepy

Tactical Espionage Splatterer

No offence maar *lees die FAQ* nu eens door en zorgt dat je het begrijpt. Die 0b is voor (jaja) binair. Binair 0010 is decimaal 2 en dat staat daat toch echt allemaal uitgelegd. Als je weet wat een OR poort is en hoe dat werkt dan zou je dit ook al moeten weten.

Anyway, ik ga deze alsnog dicht doen. Binair omrekenen naar een decimaal getal staat uitgelegd in de tallenstelsels FAQ en is met google echt enorm eenvoudig te vinden. GoT is geen helpdesk maar een discussie forum, vandaar dat we hier iets meer inzet vragen. Vragen hoe je binair omzet naar een decimaal getal is echt prima zelf uit te zoeken en hoort hier qua vraag ook echt niet thuis, zeker niet omdat er al meerdere keren genoeg informatie gegeven is waar je kan vinden hoe dit allemaal werkt.

[ Voor 63% gewijzigd door Creepy op 07-10-2008 20:43 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.