Tarvitsisin hieman apua koskien VB6
Eli jos VB net sobellutuksessa on bitin siirto oikealle esimerkiksi näin, miten voin toteuttaa sen VB6:lla?
int_5 = &H3E700 array(4) = CByte((int_5 >> 12) array(5) = CByte((int_5 >> 4)
Onko silloin array(4) = &h70 ja array(5) = &h3E
Onko tuohon VB6 mitään valmista käskyä toteuttaa sama asia, vai miten se pitäisi tehdä.
Mod. lisäsi kooditagit!
VB6:ssa vastaavat käskyt on:
array(4) = (int_5 \ &H1000) And &HFF array(5) = (int_5 \ &H10) And &HFF
Esimerkissäsi array(4) = &H3E ja array(5) = &H70
Mod. lisäsi kooditagit!
Ok, kiitos paljon :)
Onko tuo ">> 12" merkki, että bittijonon oikealta otetaan 12 bittiä ja siirretään vasemalle alkuun ? manuaalisesti kun testailin, mulla meni sit toi väärin.
Sitten tämä vielä.
Dim b1 As Byte = CByte((int_5 >> 16)) Dim b2 As Byte = CByte((int_5 >> 8)) Dim b3 As Byte = CByte((int_5 And 255))
Mod. lisäsi kooditagit!
>> 12 tarkoittaa että siirretään 12 bitin verran oikealle. Eli siis käytännössä jaetaan luvulla 2^12 eli 4096 (eli heksana 1000). 32-bittisen luvun tapauksessa siis otetaan 20 (32-12) enitenmerkitsevää bittiä.
Noi olis VB6:lla
Dim b1 As Byte b1 = (int_5 \ &H10000) And &HFF Dim b2 As Byte b2 = (int_5 \ &H100) And &HFF Dim b3 As Byte b3 = int_5 And 255
Kiitoksia vielä tosi paljon, homma jatkuu taas..
Aihe on jo aika vanha, joten et voi enää vastata siihen.