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


bit-hantering på enkelt sätt?

Postades av 2006-05-04 15:50:01 - Niklas Wallstrom, i forum vb.net, Tråden har 10 Kommentarer och lästs av 1077 personer

hallå alla
Jag skulle behöva några enkla kommandon för att komma åt de binära bitarna i 12 bitars tal. (Typen är Integer, men det är bara de 12 LSB som är intressanta. Mao: talen är aldrig större än 4095)

Anledningen till att jag vill kolla specifika bitar är att beroende på vilken av två RadioButtons som är True ska jag plocka bit 11 och 9-0, alternativt bit 10 och 7-0.

Man skulle ju kunna lösa det med division med 2, men det känns väldigt klumpigt...

Nån som har en tanke om detta?


Svara

Sv: bit-hantering på enkelt sätt?

Postades av 2006-05-04 16:26:19 - Thomas Vanhaniemi

Det är ett enkelt problem...

4095 = 0000 1111 1111 1111
--------------------------^
Till exempel bit nr 5 ovan har ju värdet 16. Vill du testa om den är en etta eller nolla tar du bara variabeln du har värdet i AND 16

Tex
<code>
Dim Tal As Integer = 4095

' 0000 1011 1111 1111 = 3071
' Ovanstående säger att plocka bitarna 11 och 9-0

Dim Mask As Integer = 3071
Dim Result As Integer = Tal And Mask

'Result innehåller nu enbart ettor eller nollor på positionerna där masken är 1.
'Alla positioner där masken är 0 blir biten också 0.
</code>
Du får lov att bearbeta exemplet ovan för att göra det du vill, men grunderna har du där.


Svara

Sv:bit-hantering på enkelt sätt?

Postades av 2006-05-05 09:55:08 - Niklas Wallstrom

...så det var så lätt i VB också...

Det är de små grejerna som gör det. Tackar


Svara

Sv: bit-hantering på enkelt sätt?

Postades av 2006-05-05 09:57:03 - Thomas Vanhaniemi

Det är lika lätt i de flesta språk, bara du kan göra en logisk operation på två variabler/värden så fungerar det.


Svara

Sv:bit-hantering på enkelt sätt?

Postades av 2006-05-05 12:04:55 - Niklas Wallstrom

men följdfrågan blir: hur visar jag den binära koden i en textbox?

Gör jag så här, kommer svaret i Hex

TextBox2.Text = Format(mask, "x").ToString

"b" istället tycker jag verkar logiskt, men det funkar inte.


Svara

Sv: bit-hantering på enkelt sätt?

Postades av 2006-05-05 13:29:42 - Thomas Vanhaniemi

Kolla hjälpen om de skriver något om det där, har aldrig behövt skriva ut den binära representationen med VB.NET så jag vet tyvärr inte.

Annars kan du ju lätt skriva en funktion som skriver ut bitarna.


Svara

Sv:bit-hantering på enkelt sätt?

Postades av 2006-05-05 16:55:21 - Niklas Wallstrom

Anledningen till att jag ville ha något enkelt kommando var att det skall utföras för ca 36000 olika int-variabler. Det kan bli lite tidsödande efter ett tag. Men jag kan inte hitta något, så det får bli som du säger.

Tack för allt.


Svara

Sv: bit-hantering på enkelt sätt?

Postades av 2006-05-05 17:19:14 - Thomas Vanhaniemi

Det går att göra snabba funktioner om det är det du behöver.
36000 int variabler borde inte vara något problem.
Använd dig av Shift operatorn när du ska skriva ut bitarna i en funktion så får du väldigt snabb kod.


Svara

Sv: bit-hantering på enkelt sätt?

Postades av 2006-05-05 17:39:27 - Thomas Vanhaniemi

Jag tog mig friheten att göra en funktion du kan använda om du vill.
<code>
Public Function IntToBin(ByVal value As Integer, ByVal bits As Byte) As String
Dim Ret As New System.Text.StringBuilder
Dim Mask As Long = Math.Pow(2, bits) - 1
Dim TopMask As Long = Math.Pow(2, bits - 1)

Do Until bits = 0
Ret.Append(Convert.ToInt16((value And TopMask) > 0).ToString)
value <<= 1
bits -= 1
Loop

Return Ret.ToString
End Function

'Använd som
IntToBin(1024, 12) '1024 står för talet du vill få de 12 lägsta bitarna från
</code>


Svara

Sv:bit-hantering på enkelt sätt?

Postades av 2006-05-05 18:28:10 - Oskar Johansson

Convert.ToString(nummer, 2)


Svara

Sv: bit-hantering på enkelt sätt?

Postades av 2006-05-08 08:09:17 - Niklas Wallstrom

Funktionen funkar ju bra, tack för den!
Men det sista inlägget var nog exakt vad jag letade efter.


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

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 570 725
27 958
271 751
411
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