Jag försöker att göra en kod som slår ihop tre bytes med varandra ex. För att göra bitvis and använder du ett enkelt & tecken Om jag vill ta ut bitarna ur en integer en efter en och stoppa in dom i en annan int hur gör jag då??? Jag exprimenterade lite med shift operatorn och får ute det första vädet men hur får jag ut dom andra??? int inNodeID = Int32.Parse("1C4002",NumberStyles.HexNumber);Problem med att shifta in en byte med en annan...
Hex Dec Bin
Byte_1 = 1C 28 00011100
Byte_2 = 20 32 00100000
Byte_3 = 0A 10 00001010
int_1 = Byte_1 ?? Byte_2 ?? Byte_3
int_1 == 1C200A 1843210 00011100 00100000 00001010
Hur gör man detta på att lätt sätt????
Sedan skulle jag vija shifta ut bitarna i int_1 så att
Byte_1-6 = 7 7 000111
Byte 7-12 = 1 1 00001
Byte 13-24 = A 10 0000000001010
Är det någon som kan hjälpa mig med det här???
/Johan
Sv: Problem med att shifta in en byte med en annan...
dvs 1100 & 0110 = 0100
För att flytta bytes så använder du följande syntax där du flyttar bitarna till vänster med << och till höger med >>
int a = 1;
int b = a << 1; (2)
int c = b << 1; (4)
int d = c >> 2; (1)
int e = d << 2; (4)
Mvh MikaelSv: Problem med att shifta in en byte med en annan...
ex:
int in = 010111010;
int out = 0;
for (int i=0;i<5;i++) {
out << in; //här vill jag kunna ta ut biten som skiftats ut ur "in" i paramertern "out"
WriteLine( in + " " + out);
}
output:
10111010 0
0111010 01
111010 010
11010 0101
1010 01011
Kan man göra detta?????Sv: Problem med att shifta in en byte med en annan...
int inNodeID = Int32.Parse("1C2002",NumberStyles.HexNumber); //000111000010000000000010
int förstasexbytesen = inNodeID >> 18; //000111
MessageBox.Show(förstasexbytesen.ToString()); /7 Sv: Problem med att shifta in en byte med en annan...
int ett = inNodeID >> 18;
int två = inNodeID >> 13;
int tre = inNodeID;
två = två & ett;
tre = tre & två;
MessageBox.Show(ett.ToString()+" "+ två.ToString()+" "+tre.ToString());
7 2 2 RÄTT!!