| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Запись в число и вывод |
| Автор: VampirDX 28.11.2009, 05:10 |
| Продолжение http://forum.vingrad.ru/forum/topic-281638.html, дабы не путать. Допустим есть массив из 3-х байтовых чисел. Как его записать в единое число и вывести его на экран? Использую textBox. Записать, т.е. число допустим 000000000, и как в него записать данные с массива так, чтобы f[0] было в первой тройке, f[1] было во второй тройке, и т.д. А вывод имеется ввиду, что вывод обычного числа, а не байт, int или double или что там еще. Если честно, сам не разобрался до конца. Если есть вопросы у желающих помочь - задавайте, постараюсь ответить. PS: спасибо tol05 и Heinzz за ответы. |
| Автор: Lunatic2009 28.11.2009, 05:29 | ||
Не совсем понятно, Вам нужно что бы было так:
результат: 100122400 или так: 100012200400 |
| Автор: Heinzz 28.11.2009, 11:28 | ||
работает |
| Автор: Heinzz 28.11.2009, 11:53 | ||
| Коряво как то. Лучше проще:
|
| Автор: VampirDX 29.11.2009, 00:12 | ||||
| что-то, heinzz, от твоих примеров у меня там числа шибко большие получаются)) Попробую как-то популярнее объяснить... есть массив байт из 3 чисел:
Как мне эти числа вбить в одно число со смещением, т.е. R = 000000000 и число должно получиться
Так, чтобы оставшиеся нули были слева. смещение "<<". |
| Автор: Heinzz 29.11.2009, 07:54 |
| ну так параметр d3 в ToString как раз и говорит о том что каждый байт должен быть записан тремя цифрами, если же он короче добавляются нули слева. |
| Автор: VampirDX 29.11.2009, 16:03 |
| да, действительно..ты прав...получилось как надо. А как теперь полученную строку в десятичное число преобразовать, так так на данный момент в ней последовательность байт? |
| Автор: Heinzz 29.11.2009, 17:53 | ||
Это очень просто
получаем десятичное число, правда нули спереди исчезнут. Помимо double можно получить и int что в данном случае на мой взгляд лучше подходит (число же всегда целое) |
| Автор: Zakonnic 29.11.2009, 20:28 |
| А может просто bArr[0]*1000000+bArr[1]*1000+bArr[2] ? Или на худой конец так: int output = bArr.Aggregate(0, (total, next) => total * 1000 + next); PS. Вас точно десятичные смещения интересуют, а не двоичные? |
| Автор: VampirDX 29.11.2009, 23:01 |
| Zakonnic как бы грустно это не звучало...но я сам уже не совсем понимаю, что меня интересует... ну а для byte'ов что надо? мне-то надо, чтобы при входе 3-х байтовых чисел, их совместить в одно и вывести в виде десятичного числа. Кстати, Heinzz, точно десятичного, потому что у меня на выходе будут числа типа -4,3954 и типа 0,10353. |
| Автор: SmartBye 30.11.2009, 20:28 | ||||
Или так:
Но, возможно, я не так понял вашу задачу. |