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 fra Infor
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