C# vs c !!


by hadi amiri 4
Tags: None
hadi amiri 4
hadi amiri 4 is offline
#1
May2-10, 10:16 AM
P: 97
Hello every body!

can anyone explain what this c# code does or give a C equalivent?

public static void Replace(ref byte b, int pos,
byte value)
{
b = (byte) (value == 1 ? b | (1 << pos)
: b & ~(1 << pos));
}

public static byte Extract(byte b, int pos) {
return (byte) ((b & (1 << pos)) >> pos);
}
Phys.Org News Partner Science news on Phys.org
Going nuts? Turkey looks to pistachios to heat new eco-city
Space-tested fluid flow concept advances infectious disease diagnoses
SpaceX launches supplies to space station (Update)
D H
D H is offline
#2
May2-10, 10:17 AM
Mentor
P: 14,440
This looks like homework. What do you think it does?
Speedo
Speedo is offline
#3
May2-10, 10:31 AM
P: 20
can anyone explain what this c# code does or give a C equalivent?
The C code is essentially identical to the C# code given. Just replace the "byte" type with "char", and change the first parameter of Replace from a reference to a pointer.

Coin
Coin is offline
#4
May5-10, 06:48 PM
P: 587

C# vs c !!


If you want to understand this I suggest you google "bitwise operator". These are the |, &, ~ sort of operators and the C bitwise operators are the same in C#.
hadi amiri 4
hadi amiri 4 is offline
#5
May16-10, 12:42 PM
P: 97
These two functions are used for empadding and extracting the bits from a byte ,they are used for steganography with LSB method in 24-bit .bmp pics,i just wanted to kmow that how they work ,i mean with some examples.can any one help?
Coin
Coin is offline
#6
May16-10, 01:19 PM
P: 587
Well they're just simple functions to treat a byte like an array of bits and get or set single bit values out. So if you say Replace(ref x, 4, 1) you are setting the 5th most significant bit of the x variable with "1".

Extract(b,pos) in english says shift a 1 value up by pos, bitwise-and the result by b, then shift the value back down by pos (so that the only possible end results are 0 and 1). Replace(b,pos,value) says take the value referenced as b and if the value is 1 then bitwise-or the value by 1 shifted up by pos, otherwise bitwise-and with a mask which is the NOT of 1-shifted-up-by-pos. This is all pretty basic stuff so again I urge you to read up on bitwise arithmetic. Basically any introduction to the subject will cover the stuff happening in these functions.


Register to reply