![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| qpeHukc |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 18.12.2005 Где: Москва Репутация: нет Всего: нет |
Есть число.
ushort i; оно равно допустим 45. 45 - это шестнадцатеричное значение. Как преобразовать в десятичное ? тоесть в 69. Может можно без всяких умножений на степень 16-ти ? |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 9 Всего: 172 |
-------------------- |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Так:
-------------------- ![]() |
|||
|
||||
| qpeHukc |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 18.12.2005 Где: Москва Репутация: нет Всего: нет |
во, работает |
||||
|
|||||
| ivashkanet |
|
||||||||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Какая-то ерунда получается, ИХМО!!! Ты береш десятичное число 23 и заставляешь воспринимать его компьютером как шестнадцетиричное. Т.Е. преобразуешь его в строку "23", а потом говоришь что строка это 16-тиричное число (ну чистая ерунда, ИХМО ) qpeHukc, перефразируй, пожалуйста, задачу 1) Если тебе просто нужно перевести запись числа 0x23 в десятичную, то это делается так
Число в int-е храниться как 10-чное(т.е будет именно 35). 2) если число вводиться пользователем, тогда код такой:
3) Если же тебе действительно нужно воспринимать 10-чное число как шестнадцеqpeHukcтиричное, то код именно такой:
Но что делать с A,B,C ... Ведь таких цифр в 10-ом числе нет. И если можно сформулируй задачу для которой нужен п. 3) (Сам придумать не смог) P.S. Все что написано выше -- это только мое личное скромное мнение (ИХМО). Поэтому, если я не прав исправьте меня, пожалуйста. Это сообщение отредактировал(а) ivashkanet - 21.3.2006, 14:18 |
||||||||
|
|||||||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
ivashkanet, если не так эмоционально, то конечно всё зависит от задачи. Вдруг там приходит число, побитое на тетрады как BCD, только с основанием 16 а не 10...
-------------------- ![]() |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Все, чуть-чуть остыл и изменил сообщение. Прошу прощения, у всех кто видел, за излишнюю эмоциональность. P.S. Ждем ответа, qpeHukc. |
|||
|
||||
| qpeHukc |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 18.12.2005 Где: Москва Репутация: нет Всего: нет |
мне нужно воспринимать 10-тичное как 16-ричное. Задача - настройка каналов платы АЦП. Опции одного канала - это последовательность битов. Например 10011001. Из этих нулей и едениц я формирую 10-тичное число и передаю его в структуру, настраивающую плату. Но там нужно 16-ричное значение этого полученного 10-тичного числа. Это сообщение отредактировал(а) qpeHukc - 22.3.2006, 19:19 |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
То есть у тебя по сути десятичные число состоящие только из 0 и 1 ??? А почему при формировании десятичного сразу не перевести двоичное в десятичное. И что значит формирую???? |
|||
|
||||
| qpeHukc |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 18.12.2005 Где: Москва Репутация: нет Всего: нет |
У меня обычное 10-тичное число Вот так формирую Math.Pow(2, 7) * ONEChanel.MA0 + Math.Pow(2, 6) * ONEChanel.MA1 + Math.Pow(2, 5) * ONEChanel.MA2 + Math.Pow(2, 4) * ONEChanel.MA3 + Math.Pow(2, 3) * ONEChanel.MA4 + Math.Pow(2, 2) * ONEChanel.MA5 + Math.Pow(2, 1) * ONEChanel.GS0 + Math.Pow(2, 0) * ONEChanel.GS1 умножением 0 или 1 на степень двойки. |
||||
|
|||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Оно там что, в строке лежать должно ? Числа - это числа. Для тебя они могут быть в десятичном, в двоичном, хоть в восьмеричном формате. В памяти они хранятся одинаково. Можешь присвоить int-переменной двоичное значение напрямую и не париться, если какая-то другая часть программы будет работать с 16-чными вычислениями (сдвиги, лог. операции и т.п.). -------------------- ![]() |
|||
|
||||
| qpeHukc |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 18.12.2005 Где: Москва Репутация: нет Всего: нет |
я уже пробовал - настраивал каналы так (как описано в примере документации к плате) - helper.Chn[0] = 0x14; // ushort Chn[128]; helper.Chn[1] = 0x0; helper.Chn[2] = 0x45; ... в helper.Chn[0] попадало 10-тичное значение числа 0x14 а когда я сам формирую число, мне ж его никак в helper.Chn[i] не записать в 16-чном значении. Я ж не могу написать helper.Chn[0] = 0xsomeValue; Это сообщение отредактировал(а) qpeHukc - 22.3.2006, 19:40 |
||||
|
|||||
| ivashkanet |
|
||||||||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
А разве не происходит искажение информации????? Например: было 1101(двоичное) --> 13(десятичное) --> 13(шестнадцетиричное) --> 19(десятичное) Добавлено @ 19:57
Не понял, что должно быть в helper.Chn[0]. 0x14 -- это 20. Но в ushort всегда хранится 10-ое число, просто записать его можно в 16-ричном виде
"x" охначает что строка должна быть 16-ричная. |
||||||||
|
|||||||||
| qpeHukc |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 18.12.2005 Где: Москва Репутация: нет Всего: нет |
Искажение информации происходит. Его я и добиваюсь ж! Я хочу положить в массив значение шестнадцатеричного числа, которое лежит у меня в переменной типа ushort как десятичное. Я на десятичное типа ushort смотрю как на шестнадцатеричное и ложу его в массив преобразовав в десятичное. Следующую реплику не понял. В чем вопрос ? |
||||
|
|||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
После формирования 10-ого (умножение степеней двоек) получилось, например, 14. Что должно быть в helper.Chn[0]. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |