Ha van egy 8 bites bináris számom amit ismerek, hogyan tudom legegyszerűbben kicserélni n-edik bitet az általam megadottra, függetlenül az eddigi értékétől az adott bitnek?
Példa: 10000000-nek második helyiértékére szeretnék 1-et írni. Ez most nulla, de lehetne egy is. Az előző állapotától függetlenül legyen 1. Ugyanígy előző állapotától függetlenül legyen 0.
Eloszor ES muveletted kinullazod azt a bitet fuggetlenul hogy 1-es vagy 0 all ott:
10000000 AND 11111101
utana VAGY muvelettel 1-be allitod:
(10000000 AND 11111101) OR 00000010
2021. márc. 9. 08:20
Hasznos számodra ez a válasz?
2/20 anonim válasza:
tulajdon kép mindegy, h mit írsz ki az előzőtől függetlenül?
11000000 vagy 01000000 teljesen más értékek.
2021. márc. 9. 08:21
Hasznos számodra ez a válasz?
3/20 anonim válasza:
Úgy, hogy kiolvasod, majd szükség szerint negálod (NOT) az n-edik bitet.
2021. márc. 9. 08:42
Hasznos számodra ez a válasz?
4/20 anonim válasza:
Ha csak egy bitet kell megváltoztatni (itt pl. a másodikat), akkor
Ha 1-re akarod beállítani: x OR 00000010
Ha 0-ra akarod beállítani: x AND 11111101
2021. márc. 9. 09:00
Hasznos számodra ez a válasz?
5/20 anonim válasza:
BitMask xor (1 shl n)
2021. márc. 9. 09:04
Hasznos számodra ez a válasz?
6/20 anonim válasza:
Az #1 valasz a jo, mert azzal barmilyenre lehet allitani, 0-ra is es 1-re is ha fuggvenykent megirja.
2021. márc. 9. 09:05
Hasznos számodra ez a válasz?
7/20 anonim válasza:
Remélem a kérdezőnek nem az minden vágya, hogy processzorokat tervezzen, ugye?
2021. márc. 9. 09:23
Hasznos számodra ez a válasz?
8/20 A kérdező kommentje:
Hú, ahogy sejtettem, nagyon sokan félreértették. :( Nem ennyire triviális. Olyasmire gondoljatok, mint a modbusnál a coil! Nem akarom vizsgálni az előző állapotát a bitnek átírás előtt, pont ez lenne a kérdés lényege. Ha én az elsőre 1-et, a másodokra 0-át, a harmadikra akármit akarok írni, azt akkor az az előző állapotától függetlenül a bitnek az legyen. DE A TÖBBI BIT VÁLTOZATLAN MARADJON, mert azok is állapotokat tárolnak. Azért erőletem ezt, mert EEPROM-ba fogom írni és onnan olvasni ha kell. Ha egyik bit sem változik az előző állapothoz képest, akkor nem frissíteném az LCD-t. Az OR és XOR nem jó, mert akkor vizsgálnom kell az előző állapotot! Persze, akkor tiszta sor lenne. A legegyszerűbb megoldást keresem az x-edik bit felülírására.
2021. márc. 9. 12:06
9/20 anonim válasza:
Már bocs, de ennyire tényleg nem lehetsz sötét.
Készítesz bitmaszkokat és a kivánalmadnak megfelelően rámaszkolod a tartalomra. Ezt NEM LEHET olvasás nélkül megúszni.
2021. márc. 9. 12:19
Hasznos számodra ez a válasz?
10/20 anonim válasza:
Milyen kontrolleren próbálod te ezt?
Mert PC-n nincs bitszintű manipuláció, de bizonyos kontrollereken, low end processzorokon van.
A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik. Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!