17. april 2002 - 22:45
Der er
13 kommentarer og 1 løsning
Byte til Bits konvertering?
Jeg vil gerne konverter en byte (integer) til 8 bit værdier nogen forslag?
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
17. april 2002 - 22:47
#1
hmm - det kan jo være at jeg blot ikke forstår dit spørgsmål - men er en byte ikke blot 8 bit der er sammensat?
17. april 2002 - 22:50
#2
jo lige præcis men jeg vil gerne have "skilt byten ad" så jeg kan se hver bit værdi
18. april 2002 - 01:16
#3
char buf[9]; _itoa (A, buf, 2); cout << "A: " << buf; _itoa (B, buf, 2); cout << "B: " << buf; _itoa (C, buf, 2); cout << "C: " << buf; -----------Display---------------- A: 10000001 B: 10000010 C: 10000011
18. april 2002 - 02:23
#4
du kan også bruger | operatoren til at tjekke et bestem bit i en byte
18. april 2002 - 08:36
#5
Det jeg er interesseret i er en funktion der kan opdele en integer mellem 0-255 (en byte) i bits.
18. april 2002 - 15:07
#6
Det gør _itoa ();
18. april 2002 - 22:50
#7
.cpp. har ret, du kan bruge itoa(). Du kan fx. lave en funktion på denne måde:
18. april 2002 - 22:50
#8
#include "iostream.h" #include "conio.h" #include "stdlib.h" #include "string.h" void GetByteAsBits(unsigned char byte, char* line) { char tmp[10]; itoa ((int)byte, tmp, 2); memset(line, '0', 8); memcpy(&line[8 - strlen(tmp)], tmp, strlen(tmp)); line[8] = 0; } void main() { char line[9]; for (int i=0; i<256;++i) { GetByteAsBits(i, line); cout << line << endl; } getch(); }
18. april 2002 - 22:55
#9
Du kan så læse hver enkelt bit som char: void main() { char line[9]; GetByteAsBits(127, line); for (int i=0; i<8;++i) { cout << line[i] << endl; } getch(); }
18. april 2002 - 22:57
#10
Husk det er som char du får bits tilbage, dvs. som ascii værdier og IKKE integers :-)
19. april 2002 - 08:01
#11
Jeg er ikke helt med på hvad 'en byte (integer)' præcis betyder men prøv at kigge på denne lille algoritme som udskriver en byte: void printbits(unsigned char s){ int sh; for (sh = 7; sh >= 0; sh--){ printf("%d", (s >> sh) & 1); } printf("\n"); } :) mvh Jesper
19. april 2002 - 09:08
#12
kamikaze -> det var lige hvad jeg skulle bruge! Jesper -> tak for forslaget, jeg har ikke kigget på det da kamikazes løsning virker!
19. april 2002 - 10:35
#13
jesper2009 >> En byte som integer findes selvfølgelig ikke. En integer er 4 bytes lang (under win32). Men hvis en int har en værdi mellem 0-255 kan den castes til en char som er 1 byte lang.
19. april 2002 - 10:36
#14
funtex >> takker for points :-)
Kurser inden for grundlæggende programmering