Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Kolla bit i byte array...

Postades av 2005-05-20 20:22:10 - Alexander Zetterlund, i forum c# (c-sharp), Tråden har 6 Kommentarer och lästs av 549 personer

Hej!

Finns det någon som hinner hjälpa mig med en smart funktion för att kolla om en bit i en byte array är false eller true?

TACK!

/Alexander

<code>

Svar = KollaBit(Data,9) //Skall då kolla den biten som är ett.
(Data[1] och längst till höger)!


public bool KollaBit(byte[] Data,int Bitnr)
{

// Data[0] 00000000 7-0
// Data[1] 00000001 15-8
// Data[2] 00000000 23-16
// osv...


}


</code>


Svara

Sv: Kolla bit i byte array...

Postades av 2005-05-20 20:30:02 - Göran Andersson

Index i arrayen blir Bitnr>>8 och bitmasken blir 1<<(Bitnr & 7).


Svara

Sv:Kolla bit i byte array...

Postades av 2005-05-21 20:29:29 - Alexander Zetterlund

Tack för svaret!

...men jag fattar inte riktigt.

Skulle du kunna utvecka svaret lite mera?


Svara

Sv: Kolla bit i byte array...

Postades av 2005-05-22 22:30:00 - Johan Svensson

Annars är det just detta som man använder den matematiska operationen AND (som ej skall förväxlas med den logiska operationen AND).

Ex.
MittVarde AND 1 kollar den minst signifikanta biten
MittVarde AND 2 kollar nästa bit
MittVarde AND 3 kollar båda bitarna samtidigt
osv


Svara

Sv: Kolla bit i byte array...

Postades av 2005-05-22 22:44:55 - Göran Andersson

Jag gav ju dig den svåra biten, måste jag göra den lätta också... ;)

public bool KollaBit(byte[] Data,int Bitnr)
{
   return (Data[Bitnr>>3] & (1<<(Bitnr & 7))) != 0;
}


Korrigering:
Index är naturligtvis Bitnr>>3.


Svara

Sv:Kolla bit i byte array...

Postades av 2005-05-23 09:09:31 - Alexander Zetterlund

TACK IGEN, DET FUNKAR!!!
MYCKET SNÄLLT!!!

Men jag skulle vilja fatta varför...

(Data[Bitnr>>3] , Varför flytta 3 steg?
<<(Bitnr & 7))) , Varför en 7:a här?

/Alexander


Svara

Sv: Kolla bit i byte array...

Postades av 2005-05-23 23:14:37 - Göran Andersson

Index för en bit i arrayen delas upp så här (binärt):

aaaaaaaaaaaaabbb

aaaaaaaaaaaaa = index i arrayen
bbb = index för biten i byten

För att få a så skiftar man index tre bitar åt höger.

För att få b så plockar man ur de tre lägsta bitarna. Det kan man få genom att göra en and-operation med det binära värdet 111, vilket i decimal form är sju.

Bit nummer 42 har index 41, eller binärt:

0000000000101001

Index i arrayen fås genom att skifta ut de tre lägsta bitarna: ---0000000000101 = 5

Index för biten fås genom and med 111: -------------001 = 1

Bit nummer 42 ligger alltså som andra bit (index 1) i den sjätte byten (index 5).


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 165
27 952
271 704
808
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies