Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » unsigned short* data und unsigned short m_data[32]

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
31.03.2006, 13:08 Uhr
darkstar2005



Ich habe eine Variable die aus 32Wörter a 32 Bit bestehen soll d.h. sowas


Code:
unsigned short m_Value[32];




in dem Array will ich an einem bestimmten Wort und Bitposition die bValue reinschreiben


Code:

unsigned short* m_Value;

void CClass::setValue(bool bValue, unsigned short WNO,unsigned short BitPos){
    unsigned short WordNr = m_Value[WNO];
    //WordNr
}






da läuft schon mal mit dem Wordnummer was schief
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
31.03.2006, 13:32 Uhr
RHBaum



Wörter sind in deinem Fall 16 bit integer richtig ?

und so einfach geht das nicht .... wie immer halt.

du kannst in variablen auf speicher etc immer nur byte-weise schreiben, also mit einmal setzen aenderst du mindestens immer 8 bit !

willst du einzelne Bits schreiben, must du mit masken arbeiten .... dein Freund werden dann die Bit-operatoren wie << >> (shift left, shift right) | & (bitweises oder und und verknuepfen) sowie ~ (negation)

Auf C++ ebene wuerden dich Bitfelder oder std::vector<bool> unterstuetzen koennen

Ciao ...

Dieser Post wurde am 31.03.2006 um 13:32 Uhr von RHBaum editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
31.03.2006, 13:56 Uhr
darkstar2005



ok, du meinst statt
[Code]
unsigned short m_Value[32]; // 32 Words a 16 bit
[/Code]

müsste ich in einem

[Code]
unsigned char m_Value[64]; // 32 Words a 16 bit
[/Code]

die Bits schieben?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
31.03.2006, 14:21 Uhr
Hans
Library Walker
(Operator)


Hi,

es gilt
Code:
short <= int <= long
d.h. je nach dem, wie Dein Compiler eingestellt ist, wird er für short-Variablen entweder 16 oder 32 Bit nehmen, das solltest Du erst mal prüfen. Es gibt hier irgendwo im Forum auch einen Thread dazu, einfach mal die Suchfunktion benutzen.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
31.03.2006, 14:56 Uhr
ao

(Operator)



Zitat von darkstar2005:
an einem bestimmten Wort und Bitposition die bValue reinschreiben

Willst du wirklich Wort und Bitposition in der äußeren Funktion ausrechnen lassen? Schöner wärs doch, wenn die Klasse sowas hier verstehen würde:

C++:
CClass x;
// x initialisieren

// jetzt kommts
x.Set (375, 1); //setze das 375. Bit auf 1,
        // kümmere dich selber darum, wie du an
        // die Wordnummer und Bitposition kommst.


ao

Dieser Post wurde am 31.03.2006 um 14:56 Uhr von ao editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: