Results 1 to 5 of 5
Hybrid View
-
1st August 2019 03:00 #1
Òúï âúïðîñ ñâúðçàí ñ ïîáèòîâè îïåðàöèè è C#
Çäðàâåéòå,
Èìàì ñëåäíèÿ ïðîáëåì:
Èìàì íÿêàêâî 32 áèòîâî ÷èñëî. Îò íåãî òðÿáâà äà âçåìà n áðîé áèòà êàòî ïúðâèÿ áèò çàïî÷âà ïîçèöèÿ p è ðåçóëòàòúò äà å îòíîâî 32 áèòà ÷èñëî.
Èìàì åòî òàçè ôóíêöèéêà:
Âñè÷êî èçòëåæäà íàïúëíî ëîãè÷íî è ìè èçãëåæäà êàòî íàé-äîáðîòî ðåøåíèå íà ïðîáëåìà. Íåçíàéíî çàùî îáà÷å êîãàòî ïðèìåðíî n = 1 èëè n = 2 ôóíêöèÿòà "åêñòðàêòâà" åäèí áèò ïî-ìàëêî, à â äðóãèòå ñëó÷àè âñè÷êî ïîíå èçãëåæäà íàðåä. Ïðèìåðíî àêî number = 0b101011, p = 0 è n = 2, ôóíêöèÿòà âðúùà 0b1 âìåñòî 0b11.Code:int ExtractBits(int number, int n, int p) { return (((1 << (n - 1)) - 1) & (number >> p)); }
Íÿêàêâè èäåè íà êàêâî ìîæå äà ñå äúëæè òîâà ?Last edited by vanmx; 1st August 2019 at 03:07.
X470 AORUS ULTRA GAMING | Ryzen5 2600 |2x16GB Corsair LPX 3200Mhz | EVGA GeForce GTX 1080 Ti SC Black Edition Gaming|512GB Samsung 970 Pro +
512GB ADATA SU800| Corsair HX1200i | Corsair Graphite 600t |BENQ PD3200U
-
1st August 2019 09:32 #2Mire-x
Join Date: Apr:2005
Location: Sofia
Posts: 763
Ïðè n=2 ñå ïîëó÷àâà (1<<(2-1))-1 = (1<<1)-1 = (0b10)-1 = 1. Òàêà ìàé âèíàãè ìàñêàòà òè å ñ 1 áèò ïî-ìàëêî. Òðÿáâà òè äèðåêòíî (1 << n) - 1.
(10b) || !(10b)
-
1st August 2019 09:33 #3Registered User
Join Date: Oct:2011
Location: Ïëîâäèâ
Posts: 430
Àìè íà ïðúâ ïîãëåä, ìàõíè òîâà -1
return (((1 << n) - 1) & (number >> p));Ñåìêè. Ïî-ëåñíî å äà ãè èçïëþåòå, íî å ïî-ïîëåçíî äà ãè ãëúòíåòå
-
1st August 2019 23:45 #4
Áëàãîäàðÿ çà ïîìîùòà, îêàçà ñå ÷å ïðîáëåìúò íå ìè å áèë â òàçè ôóíêöèÿ. Òîâà -1 ãî áÿõ ñëîæèë çà äà åêñïåðåìåíòèðàì ñ ðàçíè ðàáîòè, àìà çàáðàâèõ äà ãî ìàõíà êàòî ãî ïåéñòâàõ ó ôîðóìà. Çàèãðàõ ñå îòíîâî ñ äåáúãåðà è âèäÿõ ÷å íå ñúì äîîãëåäàë íåùàòà. Íå çíàì îò äå ìè äîéäå àêúëà äà ñå çàíèìàâàì â 3 ñóòðèíòà ñ òèÿ ðàáîòè
Last edited by vanmx; 1st August 2019 at 23:46.
X470 AORUS ULTRA GAMING | Ryzen5 2600 |2x16GB Corsair LPX 3200Mhz | EVGA GeForce GTX 1080 Ti SC Black Edition Gaming|512GB Samsung 970 Pro +
512GB ADATA SU800| Corsair HX1200i | Corsair Graphite 600t |BENQ PD3200U
-
2nd August 2019 14:45 #5Mire-x
Join Date: Apr:2005
Location: Sofia
Posts: 763




Reply With Quote

Lenovo ThinkPad 15 èëè IdeaPad 15
5th May 2023, 22:16 in Ìîáèëíè êîìïþòðè