powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Hex to Decimal
20 сообщений из 20, страница 1 из 1
Hex to Decimal
    #38216209
Kesha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго дня всем.
У меня возникла проблема при переводе с HEX to DEC в формате "Word"

Например:
с 6981 в HEX я должен получить 27009.Это я получаю в калькуляторе Виндоус.
Как мне получить тоже самое в VB.net

Модератор: Тема перенесена из форума "Visual Basic".
...
Рейтинг: 0 / 0
Hex to Decimal
    #38216277
Kesha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kesha,Помогите пожалуйста
Очень надо
...
Рейтинг: 0 / 0
Hex to Decimal
    #38216287
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
        public static float HexToFloat(string hexString, out object ret)
        {
            float v = float.MinValue;
            ret = null;
            try
            {
                uint num;
                if (uint.TryParse(hexString, System.Globalization.NumberStyles.AllowHexSpecifier, System.Globalization.CultureInfo.InvariantCulture.NumberFormat, out num))
                {
                    byte[] floatVals = BitConverter.GetBytes(num);
                    v = BitConverter.ToSingle(floatVals, 0);
                    ret = v;
                }
            }
            catch { ;}
            return v;
        }
...
Рейтинг: 0 / 0
Hex to Decimal
    #38216290
Kesha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fortibransa,

если можно на VB
...
Рейтинг: 0 / 0
Hex to Decimal
    #38216317
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Keshafortibransa,

если можно на VBФигурные скобки что-ли заменить?
...
Рейтинг: 0 / 0
Hex to Decimal
    #38216332
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    Public Function HexToFloat(ByVal hexString As String) As Single
        Dim v As Single = Single.NaN
        Try
            Dim num As UInteger
            If UInteger.TryParse(hexString, System.Globalization.NumberStyles.AllowHexSpecifier, System.Globalization.CultureInfo.InvariantCulture.NumberFormat, num) Then
                Dim floatVals As Byte() = BitConverter.GetBytes(num)
                v = BitConverter.ToSingle(floatVals, 0)
            End If

        Catch ex As Exception

        End Try
        HexToFloat = v
    End Function
...
Рейтинг: 0 / 0
Hex to Decimal
    #38216339
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kesha,

Код: vbnet
1.
2.
Dim hexString As String = "6981"
Dim num As Integer = Int32.Parse(hexString, NumberStyles.AllowHexSpecifier)
...
Рейтинг: 0 / 0
Hex to Decimal
    #38216500
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kesha , прошу прощения за невнимательность
Вот это - HEX(float) => float, здесь (float)27009 = 0x46D30200
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
Public Function HexToFloat(ByVal hexString As String) As Single
        Dim v As Single = Single.NaN
        Dim num As UInteger
        If UInteger.TryParse(hexString, System.Globalization.NumberStyles.AllowHexSpecifier, System.Globalization.CultureInfo.InvariantCulture.NumberFormat, num) Then
            Dim floatVals As Byte() = BitConverter.GetBytes(num)
            v = BitConverter.ToSingle(floatVals, 0)
        End If
        HexToFloat = v
    End Function


Это - HEX(integer) => integer, здесь (int)27009 = 0x6981
Код: c#
1.
2.
Dim hexString As String = "6981"
Dim num As Integer = Int32.Parse(hexString, NumberStyles.AllowHexSpecifier)
...
Рейтинг: 0 / 0
Hex to Decimal
    #38216948
Kesha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое за ответы.Но при занесении "8300" я должен получить -32000 (если выбираю WORD в калькуляторе)
...
Рейтинг: 0 / 0
Hex to Decimal
    #38216971
Kesha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А получаю 33536
...
Рейтинг: 0 / 0
Hex to Decimal
    #38216985
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KeshaСпасибо большое за ответы.Но при занесении "8300" я должен получить -32000 (если выбираю WORD в калькуляторе)
Код: c#
1.
2.
Dim hexString As String = "FFFF8300"
Dim num As Integer = Int32.Parse(hexString, NumberStyles.AllowHexSpecifier)
...
Рейтинг: 0 / 0
Hex to Decimal
    #38217009
Kesha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fortibransa,
Как мне тогда узнать в каком случае подставлять "FFFF" а в каком нет.
Просто получается что если в примере 8300 подставить "FFFF8300" то получиться верно.
А вот если в примере с 6981 подставить "FFFF6981" то получиться не верно.
...
Рейтинг: 0 / 0
Hex to Decimal
    #38217030
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
TConvert.ToInt32("-32000").ToString("X")

== "FFFF8300"
...
Рейтинг: 0 / 0
Hex to Decimal
    #38217035
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-27009 = FFFF967F
...
Рейтинг: 0 / 0
Hex to Decimal
    #38217078
Kesha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может я разъясню получше.
Я получаю с Serial port информацию в виде 4 характеров HEX (н.п "6981","8300" и так далее)
Эти характеры я должен отобразить на TrackBar (от -32768 до 32768)
А позже если изменяли TrackBar value то отослать информацию в таком же формате что и получил(то есть 4 характера in HEX)
...
Рейтинг: 0 / 0
Hex to Decimal
    #38217134
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KeshaМожет я разъясню получше.
Я получаю с Serial port информацию в виде 4 характеров HEX (н.п "6981","8300" и так далее)
Эти характеры я должен отобразить на TrackBar (от -32768 до 32768)
А позже если изменяли TrackBar value то отослать информацию в таком же формате что и получил(то есть 4 характера in HEX)
Числа Integer
Все понял, у тебя не Int32, а Int16
Код: c#
1.
2.
Dim hexString As String = "6981"
Dim num As Integer = Int16.Parse(hexString, NumberStyles.AllowHexSpecifier)

= 27009
Код: c#
1.
2.
Dim hexString As String = "8300"
Dim num As Integer = Int16.Parse(hexString, NumberStyles.AllowHexSpecifier)

= -32000
...
Рейтинг: 0 / 0
Hex to Decimal
    #38217145
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В VB Int16 - это Short, соотв.
Dim n As Short
n=Short.Parse(....
n.ToString("X")
...
Рейтинг: 0 / 0
Hex to Decimal
    #38217291
Kesha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
огромное человеческое спасибо
...
Рейтинг: 0 / 0
Hex to Decimal
    #38372487
Kesha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посоветуйте пожалуйста как мне с "F3" Hex сонвертировать в -13 decimal
...
Рейтинг: 0 / 0
Hex to Decimal
    #38372677
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KeshaПосоветуйте пожалуйста как мне с "F3" Hex сонвертировать в -13 decimalВот Kesha , тебе дали пример и направление, во первых какие типы данных тебе приходят, ты должен знать "0xF3 = -13" это байт, в Windows7 хороший калькулятор, где можно выбирать размер данных, ну дык и юзай все вместе.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Hex to Decimal
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]