"kazał pan musiał sam" - jak mówi moja starsza
a wiec unie i pola binarne get out, wróciłem po natchnienie do FAQ (Char jako tablica 8 bool`i :)), problem polegał na przesunieciu w lewo króego nie mozna stosowac dla float'ów ale natkniełem sie na trik któr pozwala to obejsc i w ten sposób macie którtki przykładzik jak mozna manipulowac float'ami na poziomie binarnym, pozwala tez zrobic to o co mi chodzi czyli ustawic kolejne bity float'a tak jak sa ona zapisane w tablicy boolowskiej, przykład ten prezentuje poza tym do czego słuzy najstarszy bit w reprezentacji binarnej float'a (znak liczby).
#include <iostream>
using namespace std;
//funkcje get i set Copyright(R) FAQ (user Marooned)
//zmieniłem jedynie typ parametrów z char na int
bool get(int a, int pos)
{
return (a&(1<<pos));
}
void set(int &a, int pos, bool stan)
{
(stan)?a|=(1<<pos):a&=~(1<<pos);
}
int main() {
float f = -100.1;
// sztuczka , aby mozna było robic "<<" na float'ach
// Copyright(R) http://www.cs.umd.edu/class/spring2003/cmsc311/Notes/BitOp/bitshift.html
int * ptr = (int *) (& f) ;
printf("Float : %f\n",f);
printf("FloatToBin : ");
for(int i=31;i>=0;i--) {
if (get(*ptr,i)) {
printf("1");
} else {
printf("0");
};
};
printf("\n");
set(*ptr,31,0);
printf("Float : %f\n",f);
printf("FloatToBin : ");
for(int i=31;i>=0;i--) {
if (get(*ptr,i)) {
printf("1");
} else {
printf("0");
};
};
return 0;
}
chyba jest dobrze mnie bynajmniej zadowala , a tak na marginesie to znalazłem ze nie da sie robic tablic pól bitowych