Thema: Registermaschinen Kostenmaße |
|
Hallo
Ich habe folgende Aufgabe:
Berechnen Sie die genauen (Zeit)Kosten für die aufeinanderfolgende Durchführung der folgenden Befehle einer RM (2,15,0,8), einmal unter dem uniformen und einmal unter dem logarithmischen Zeitmaß.
Uniform logarithmisches Zeitmaß
Load*3 1 L(op) + L(ri, op) + L(rij, rij, op) = sollte 78 rauskommen.
Store 3 1
Mult 4 1
JZ 3 1
End 1 1
Kann mir jemand erklären, was die Buchstabenkürzel da heißen sollen?
L(op) + L(ri, op) + L(rij, rij, op)
Mit i sind die Befehle gemeint, die benötigt werden, um die Ausführung des Programms R abzuschließen.
L(x) ist die Logarithmische Länge die Anzahl der für die binäre Darstellung von x benötigten Bits.
Gruß,
jester
|
|
Thema: R - Komplement |
|
Hallo Karlito,
Danke für die Antwort.
Ich habe mir deine List angeschaut:
Zitat: |
Original von Karlito
|
Ich kann dir nich wiedersprechen
, jedoch habe ich noch eine frage:
- für :
- usw.
sollte man die Liste nich so schreiben oder verstehe ich was falsch.
Sry, für die Kleinigkeiten, aber ich lerne für eine Prüfung.
|
|
Thema: R - Komplement |
|
Hallo
Ich versuche hier eine Aufgabe zu lösen:
Zahlen werden im Computer weithin üblich in Binärformat mit
Zweierkomplementdarstellung dargestellt. Das dahinter liegende Prinzip ist das
sogenannte R‐Komplement.
Q: Was ist R? Zeigen Sie die Funktionsweise der R‐Komplementdarstellung mit R gleich 16 und verwenden Sie dabei ein zweistelliges
Zahlenformat.
A: R ist die Basis, des zu verwendeten Zahlensystems (also z.B. 2, 8, 10, 16)
Bsp. zeige ich jetzt nicht...
Q: Welches Intervall aus den ganzen Zahlen ist darstellbar? Zeigen Sie, wie man die Zahlen „eins“, „minus eins“, „fünfundneunzig“ und „minus fünfundneunzig“ in
diesem System darstellen kann.
A:
Interval: das R-Komplement existiert für alle Basen!
o 1: -R=16 -> 0x1 -> Differenz auf R-1: 0xE -> 1 addieren -> 0xF
o -1: ->R=16 ->0xF -> Differenz auf R-1: 0x0 -> 1 addieren -> 0x1
o 95: -> R=16 -> 0x5F -> Differenz auf R-1: 0xA0 -> 1 addieren -> 0xA1
o -95: -> R=16 -> 0xA1 -> Differenz auf R-1: 0x5E -> 1 addieren -> 0x5F
Q: Zeigen Sie, wie man in diesem System die Rechnung „drei
minus sechs“ darstellt.
A:
o 3-6: 6 -> R=16 ->0x6 -> Differenz auf R-1: 0x9 -> 1 addieren -> 0xA + 0x3 = 0xD
Würdet ihr die Fragen auch so beantworten?
Gruß,
Jester
|
|
Thema: internet protokolle |
|
Hallo,
Was wäre, wenn ich der Besitzer eines root Zertifikates bin, kann ich ein Zertifikat für googole.com machen?
Gruß,
Jester
|
|
Thema: affine ciphers |
|
Hi!
Ich versuche den folgenden text zu entschlüssenln:
frpvnautamycdinhhxrqmefniidamtalycdiqtjdunvyrqhruycdfdnqyxrycrphnamnamurpqy
ddatanhvdamtalrqmdqyrycdycqddsdyydqnvqrafjruycthvrpqhdtasrxdqvnhdsdyydqh
Dabei habe ich diese webseite benutzt:
http://rumkin.com/tools/cipher/affine.php
Ich habe schon mehrerer Kombinationen versucht, aber ich bin noch immer nicht auf eine lösung gekommen.
darunter ist die frequency analysis:
d : 20
y : 15
q : 13
r : 13
a : 12
n : 10
h : 9
t : 7
m : 7
c : 7
v : 6
u : 5
f : 4
i : 4
p : 4
s : 3
x : 3
l : 2
j : 2
e : 1
gruß,
jester
|
|
Thema: MySQL datenbank |
|
Hallo,
Ich habe hier eine Abfragen, die ...
code: |
1:
|
#Select DDirector, DName, CID From Department Where CID not in ( Select CID From Company Where CName = 'Austrianware' ); |
|
wurde so umgeschrieben:
code: |
1:
|
Select Factory.* From Factory, Vehicular_Inventory, Type Where Type.TIdentifier = "Porsche" And Type.TNr = Vehicular_Inventory.TNr And Vehicular_Inventory.FNr = Factory.Fnr; |
|
Ich verstehe leider nicht, wie man das "not in" von der ersten in der zweiten ausdrückt.
|
|
Thema: b!tsh!fting |
|
Hallo,
Ich habe leider eine overflow bemerkt:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
while(shift >= 0)
{
// printf("shift: %d\n", shift);
if(sum >= mod<<shift)
{
// printf("sum: %d\n", sum);
sum-= mod<<shift;
// printf("sum: %d\n", sum);
}
shift--;
} |
|
wie kann ich es mit unsigned lösen?
ich habe schon probiert mit
while(shift !=0)
|
|
Thema: b!tsh!fting |
|
ich möchte nicht a^b berechnen, sondern in meinem programm merkt er sich die anzahl der shifts.
c^anzahl shifts, die ich dann der summe abzähle, damit ich auf den rest komme.
die multiplikation für die summe werde ich noch ausbessern. im moment ist mir nur wichtig, dass ich überhaupt ein summe habe. das programm, was du da auf die schnelle geschrieben hast, läuft super!
jedoch verstehe ich noch nicht alles was du da gemacht hast.
|
|
Thema: b!tsh!fting |
|
Kennt jemand eine möglichkeit, wie man eine potenzrechnung nur mit +, - oder shift ausführt?
z.B.: 2^3
Ich würde es für die Modularrechnung benötigen.
Wenn ich als summe 16 rausbekomme, funktioniert es zwar wunderbar, aber nicht nicht bei 19, 20 ...31. ab 32 wieder da ja 2 << 4 == 32
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:
|
int main()
{
int konst = 000000001;
int a = 4;
int b = 4;
int mod = 2;
int i = 0;
int sum = 0;
if( mod == 0)
{
printf("Modular must be bigger than 0!\n");
}
else
{
//addieren
while(i < b)
{
sum = sum + a;
i++;
}
//Bitshifting
//e.g. 8bit 0000 0001
sum = 32; //soll sum in der zwischenzweit ersetzen
int zahl1 = 0;
int zahl2;
int shift = 7;
return 0;
} |
|
|
|
Thema: b!tsh!fting |
|
kann das sein, dass in der funktion divide sich vllt ein fehler eingeschlichen hat?
da wird return quot zurückgegeben aber nie damit gearbeitet oder täusche ich mich?
|
|
Thema: b!tsh!fting |
|
was macht diese zeile?
code: |
1:
|
int tests = (int)1e6, i; |
|
ich bin mir nicht so sicher, ob ich sizeof() verwenden darf.
da ich es dann in logisim umschreiben werde!
|
|
Thema: b!tsh!fting |
|
Ich schreibe an einem programm wo man nur +, - oder shift verwenden darf, da ich es dann auf Transistoren, etc ummünze.
Das Thema ist die Modulo Rechnung: a*b mod c, z. b: 4*4 mod 2 = 0
Hier zuerst wie weit ich bin. Dabei habe ich ein paar unwichtige Codefragment ausgelassen.
Es gibt nun mehrere Varianten, wie man shiftetet
1. Variante:
Man schiebt zu Beginn den Modul msolange nach links, bis das zweite Bit von links (im 16‐Bit‐Register) den Wert 1 kriegt. Der Automat merkt sich dabei die Anzahl der Schiebeoperationen (= j) für später.
Wenn dann nach der Multiplikation die Modulo‐Berechnung beginnt, kann man mit dem vorher
„geeignet“ nach links verschobenen Wert beginnen. Man subtrahiert also m*2^j
und sieht nach, obdas Ergebnis negativ wurde.
Wenn ja, dann ignoriert man dieses Ergebnis, schiebt m um eine Stelle
nach rechts und versucht es mit m*2^j‐1. Sobald das Ergebnis der Subtraktion positiv ist, merkt man
sich dieses Zwischenergebnis als neuen Wert. Dies macht man solange, bis man endlich das Ergebnis
hat.
--> Da fällt mir die Idee, wie ich erkennen kann das 2 bit von links.Kann mir da jemand auf die Sprüne helfen?
2. Variante:
Man schiebe m solange bis das verschobene Modul m größer ist bis das vorher berechnete Produkt.
--> ebenfalls noch keine Idee
Ziel ist es so schnell wie möglich die modulo rechnung durchzuführen ohne zu viele subtraktionen zu machen. Bei höheren Zahlen, würde das Programm dadurch langsam sein, wie z.b: bei (5*300) und dann 2 abziehen bis es nicht mehr geht.
|
|
Thema: C for schleife multiplikation |
|
hi,
danke für die Antworten,
mir wurde gestern mitgeteilt dass ich nur additionen und subtraktionen verwenden darf...
bei 3 stelligen Zahlen gibt es eine Schleife, welche 3 mal durchlaufen ist.
* Bei jedem Schleifedurchlauf wird ein Partialprodukt ermittelt und zum Produkt addiert.
* Fuer jedes Partialprodukt braucht man den wert von a, welcher Stelle fuer Stelle
* nach links verschoben wird.
* Und man muss in jedem Schleifendurchlauf das niederwertigste Bit von b betrachten und sodann b um eine
* eine Stelle nach rechts verschieben.
lg
|
|
|