Permalänk

binärt tal till text?

Tjena!

Hur gör man enklast för att översätta binära tal till text?

Vet hur det fungerar med att typ 110 = 6 och så, men hur gör man till text? tack

Visa signatur

-forum!

Permalänk
Medlem

0110XXXX = textbyte.

Där XXXX står för numret på på bokstaven.
01100001 = a
01100010 = b
01100011 = c
osv

Visa signatur

Into the Web Browser for iPhone, http://www.intothewebbrowser.com/

Permalänk
Medlem
Permalänk

som oggee skriver. Måste man skriva 0110 inför varje bokstav alltså?

OK tackar

Visa signatur

-forum!

Permalänk
Glömsk

www.asciitable.com

A är exempelvis 65, alltså 1000001 binärt. Man brukar lägga till 0:or i början så "strängen" blir 8 tecken långt, så A kan skrivas 01000001

Visa signatur

...man is not free unless government is limited. There's a clear cause and effect here that is as neat and predictable as a law of physics: As government expands, liberty contracts.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Psionicist
www.asciitable.com

A är exempelvis 65, alltså 1000001 binärt. Man brukar lägga till 0:or i början så "strängen" blir 8 tecken långt, så A kan skrivas 01000001

Observera att det är A och inte a.
Stora 0100
Små 0110
Jag tror att det är A-Z.

Jag tror att en byte som visas som siffran 3 inte ser ut som "0000011" utan "01110011"(eller dyl).
Och 15 får inte plats i en byte utan kräver två, typ "01110001 01110101".

Är inte riktigt säker.

Visa signatur

Into the Web Browser for iPhone, http://www.intothewebbrowser.com/

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av oggee
0110XXXX = textbyte.

Där XXXX står för numret på på bokstaven.
01100001 = a
01100010 = b
01100011 = c
osv

Det är inte 011XXXXX? 4 bit blir bara upp till 16, och det finns fler än 16 bokstäver.

Permalänk
Hedersmedlem

A = 65 = 1000001
B = 66 = 1000010
C = 67 = 1000011
D = 68 = 1000100
E = 69 = 1000101
F = 70 = 1000110
G = 71 = 1000111
H = 72 = 1001000
I = 73 = 1001001
J = 74 = 1001010
K = 75 = 1001011
L = 76 = 1001100
M = 77 = 1001101
N = 78 = 1001110
O = 79 = 1001111
P = 80 = 1010000
Q = 81 = 1010001
R = 82 = 1010010
S = 83 = 1010011
T = 84 = 1010100
U = 85 = 1010101
V = 86 = 1010110
W = 87 = 1010111
X = 88 = 1011000
Y = 89 = 1011001
Z = 90 = 1011010

a = 97 = 1100001
b = 98 = 1100010
c = 99 = 1100011
d = 100 = 1100100
e = 101 = 1100101
f = 102 = 1100110
g = 103 = 1100111
h = 104 = 1101000
i = 105 = 1101001
j = 106 = 1101010
k = 107 = 1101011
l = 108 = 1101100
m = 109 = 1101101
n = 110 = 1101110
o = 111 = 1101111
p = 112 = 1110000
q = 113 = 1110001
r = 114 = 1110010
s = 115 = 1110011
t = 116 = 1110100
u = 117 = 1110101
v = 118 = 1110110
w = 119 = 1110111
x = 120 = 1111000
y = 121 = 1111001
z = 122 = 1111010

7:e biten alltså, verkar det som.

Visa signatur

Asus ROG STRIX B550-F / Ryzen 5800X3D / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + NAS / Corsair RM650x V3 / Acer XB271HU (1440p165) / LG C1 55"
NAS: 6700K/16GB/Debian+ZFS | Backup (offsite): 9600K/16GB/Debian+ZFS

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Don_Tomaso
Det är inte 011XXXXX? 4 bit blir bara upp till 16, och det finns fler än 16 bokstäver.

Faktiskt bara 15 ^_^

Stämmer nog, bara jag som börjar bli gammal.

EDIT: Eller det beror på hur man ser det, om 0000 räknas är det sexton.

Visa signatur

Into the Web Browser for iPhone, http://www.intothewebbrowser.com/

Permalänk
Medlem

Thomas det jag undrar är hur du fick fram det där?

I hex tabellerna står
A = 40 = 0100 0000
B = 41 = 0100 0001

Och i "Programming the Z80" står:

0001 100 = A
0010 100 = B

Permalänk
Hedersmedlem

Såhär:

for x in range (65,91): print '%c = %d = %s' % (chr(x), x, dec2bin(x)) for x in range (67,123): print '%c = %d = %s' % (chr(x), x, dec2bin(x))

dec2bin() är en egen funktion som gör om talen till binärt, som du säkert gissade.
Som du ser på asciitable.com så är det detta som gäller för ASCII.

Z80 använde nog inte samma standarder som dagens datorer.

Visa signatur

Asus ROG STRIX B550-F / Ryzen 5800X3D / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + NAS / Corsair RM650x V3 / Acer XB271HU (1440p165) / LG C1 55"
NAS: 6700K/16GB/Debian+ZFS | Backup (offsite): 9600K/16GB/Debian+ZFS

Permalänk
Medlem

Fullt möjligt, f*n att folk ändrar på gammla goa standards (jk) ^^
Bara en fråga till trådskaparen, ifall det här är till ett program tror jag att många programmerings språk har funktioner ibyggt till det här
tex. att du ger en byte värdet (symbol för binärt tal som jag har glömt)xxxx xxxx.
Någon får gärna fylla in symbolen ^^

Permalänk

En char är ju en byte. cout skriver automatiskt en char som ett tecken och inte som siffervärdet. Vad jag menar är att det borde vara så enkelt som:

std::cout << (char)det_binara_talet << std::endl;

Eller har jag missförstått något?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Antonovskij
En char är ju en byte. cout skriver automatiskt en char som ett tecken och inte som siffervärdet. Vad jag menar är att det borde vara så enkelt som:

std::cout << (char)det_binara_talet << std::endl;

Eller har jag missförstått något?

Stämmer bra. I och med att du castar variabeln till char så anropas char-varianten av operator<< vilket skriver ut tecken enligt ascii-tabellen. Vill man konvertera talet till en textsträng kan man använda funktionen med det något roliga namnet itoa:

int tal = 128; char buffer[33]; itoa(tal, buffer, 10); // buffer fylls med "128" itoa(tal, buffer, 16); // buffer fylls med "80" (128 decimalt i hex)

Man måste förstås tänka på ordstorleken för det system man ska köra programmet på så att talet inte blir så stort så att dess textrepresentation blir för stort för bufferten. Detta exempel fungerar bra för 32 bitars ordlängd.

itoa stöds inte av alla kompilatorer heller. Man kan då använda t.ex sprintf som jag tror finns med i ANSI-standarden.

Visa signatur

(http://rivfader.blogspot.com)
Blank face in the windowpane
Made clear in seconds of light

Permalänk
Medlem

Antonovskij vilket värde använder du till det binära talet?
char ngnchar = false true false false false false false true; tror jag inte accepteras av något programmerings språk...
Men som mer eller mindre har nämnts ett antal gånger i den här tråden så är decimal värdena lika med tecknet så i värsta fall så får du skriva en funktion som omvandlar det binära talet till decimalt som du direkt kan lägga in i en char.

Permalänk

Tools10: Det binära talet är ju det han vet från början. Alltså har han redan värdet för variablen det_binara_talet i mitt kodexempel.

Rivfader: Jag tänkte väl det