- 1
- 2
- 3
- 4
- 5
public static byte[] Length_Hex(long _Length)
{
byte[] Buf = { (byte)(_Length >> 0), (byte)(_Length >> 8), (byte)(_Length >> 16), (byte)(_Length >> 24) };
return Buf;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+111
public static byte[] Length_Hex(long _Length)
{
byte[] Buf = { (byte)(_Length >> 0), (byte)(_Length >> 8), (byte)(_Length >> 16), (byte)(_Length >> 24) };
return Buf;
}
Кривой велик
rudolff 07.08.2010 11:26 # −1
В С можно так сделать
char * buf = (char *) &length;
Nigma143 07.08.2010 11:48 # −1
можно так BitConverter.GetBytes()
Nigma143 07.08.2010 11:48 # 0
rudolff 07.08.2010 12:02 # 0
Но если делаешь что-то, конечно нужно документацию почитать.
Dmitriy 07.08.2010 14:10 # −2
Nigma143 07.08.2010 18:06 # −1
Dmitriy 08.08.2010 21:09 # −1
Nigma143 08.08.2010 21:39 # 0
Я тебе объясняю какого хрена использовать long как входящий пераметр в метод если оно возращает 4 байта! - Это раз
И 2 - какого хрена юзать этот велик если есть готовый "BitConverter.GetBytes()"
Dmitriy 08.08.2010 21:50 # 0
2. Откомпилируйте оба метода, и посмотрите сколько строк IL кода они занимают рефлектором.
3. Из полученного массива через BitConverter.GetBytes() нужно извлечь еще необходимые 4 байта. Код же, возвращает именно то, что нужно.
4. При передачи по сети крайне важно чтоб последовательность байт была строго определенная, и в данном коде их можно передать как угодно. Хоть поочередно.
5. Из кода видно, что тот кто его писал имеет много больший опыт программирования чем имеется у тебя.
Nigma143 07.08.2010 18:07 # −2
Nigma143 07.08.2010 18:22 # −2
Dmitriy 08.08.2010 21:07 # 0
Nigma143 08.08.2010 21:29 # 0
public static byte[] Length_Hex(int_Length)
{
byte[] Buf = { (byte)(_Length >> 0), (byte)(_Length >> 8), (byte)(_Length >> 16), (byte)(_Length >> 24) };
return Buf;
}
А если вдруг ты скажешь например что значение может быть больше чем int32 то используем:
long d = .....;
int a = (int)d;
размер порешится до размера int32
Dmitriy 08.08.2010 21:53 # 0
Nigma143 08.08.2010 21:30 # 0
ЛЮДИ объясните чуваку что он тормоз и именно ему надо читать мат-часть раздел!!!
Dmitriy 08.08.2010 21:55 # 0
Nigma143 08.08.2010 21:31 # 0
{
byte[] mass = Length_Hex(15465324426);
}
public static byte[] Length_Hex(long _Length)
{
byte[] Buf = { (byte)(_Length >> 0), (byte)(_Length >> 8), (byte)(_Length >> 16), (byte)(_Length >> 24) };
return Buf;
}
Nigma143 08.08.2010 21:32 # −1
Nigma143 08.08.2010 21:34 # −1
long L = 15465324426;
byte[] mass = BitConverter.GetBytes((int)L);
Так как при больших значения ты можешь получить из перегружённого метода 8 байт как long