High Byte

I need to split and integer in to bytes.

I have suceded getting the low byte doing a bitwise AND with 255.

How can i get the high byte of an integer??
LVL 2
PedroMVGomesAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

mrmickCommented:
Function HiByte(Pass As Integer) As Byte

   If (Pass And -2 ^ 15) = 0 Then
      HiByte = Int(Pass / 255)
   Else
      HiByte = ((Pass And 32512) \ 256) Or 128
   End If

End Function

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
mrmickCommented:
Simplified a bit...

Function HiByte(i As Integer) As Byte

   If i And -2 ^ 15 Then
      HiByte = ((i And 32512) \ 256) Or 128
   Else
      HiByte = i \ 255
   End If

End Function

0
mrmickCommented:
or how about this...

Function HiByte(i As Integer) As Byte
Dim Sign As Boolean

   Sign = i And -2 ^ 15
   HiByte = ((i And 32512) \ 256) Or (128 And Sign)

End Function

Note: All three work!

0
alamoCommented:
yes, yet another way, and without stripping the sign bit first

In case you'd like to see it in decimal:

Function HiByte(i As Integer) As Byte

   HiByte = (i And 65280) / 256 And 255

End Function



0
mrmickCommented:
How can i do the reverse, this is i have to bytes the low one and the higher one how can a calculate the integer??
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic Classic

From novice to tech pro — start learning today.