Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 30.06.2019
Сообщений: 17
.NET 4.x

Uint8 или почему byte некорректно переводит некоторые символы в байты

28.10.2019, 20:48. Показов 2595. Ответов 24
Метки c# (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. У меня такая проблема, что byte некорректно переводит некоторые символы в байты. Например FF(hex) uint8 которого ровняется -1 - она переведет в 79, а мне нужно чтобы переводило как положено в -1. Как можно исправить?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.10.2019, 20:48
Ответы с готовыми решениями:

В теме Tempera некоторые символы некорректно отображаются
Добрый день. В теме Tempera некоторые символы некорректно отображаются. Символ лупы(?) в поиске, символ предыдущая, следующая страница....

Некорректно переводит из UTF-8
Здравствуйте, пишу приложение, использующее API VK. После ответа с сервера разбираю JSON. Везде, где есть слово 'and' он мне заменяет на...

Как преобразовать байты, записанные в String, в byte[]?
Подскажите пожалуйста как преобразовать байты записаны в String в byte. Например есть: private String inputString = "...

24
Эксперт .NET
 Аватар для Rius
13375 / 7830 / 1695
Регистрация: 25.05.2015
Сообщений: 23,833
Записей в блоге: 14
28.10.2019, 22:02
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Enifan Посмотреть сообщение
Я кстати могу объяснить почему -1 получалось. Размера char в c++ от -128 до 127. Начиная счетчик с 0 + 255 = -1
Проще: бинарное представление одинаковое.

Цитата Сообщение от Enifan Посмотреть сообщение
Вот что смог добыть
Символы будут одинаковые только от 32 до 127 включительно. Всё остальное как повезёт, а скорее всего не повезёт. Потому что от 32 до 127 находится общая часть таблицы символов ASCII.
А дальше внезапно появляются разные кодировки. В C++ поди какая-нибудь 8-битная CP866. А в C# - 16-битный Unicode.

Добавлено через 9 минут
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
using System.IO;
 
namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var stream = new FileStream("file.txt", FileMode.Open, FileAccess.Read))
            {
                var buffer = new byte[4];
                stream.Read(buffer, 0, 4);
 
                foreach (var b in buffer)
                {
                    Console.Write("{0:x2} ", b);
                }
            }
        }
    }
}


я на скриншоте ранее имеет код 255 только в кодировке windows-1251. Поэтому файл в ней, и потому Вася занимает 4 байта.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
29.10.2019, 10:57
fifti_asd, это явно не проблема языка.
А проблема именно вашего способа получения байтов из файла.
Также вы по всей видимости не учитываете, что в UTF8 не все символы кодируются одним байтом.
Читайте https://ru.m.wikipedia.org/wiki/UTF-8

Поэтому без вашего кода и примера содержимого файла на котором возникает проблема, ответить вам не возможно.
0
548 / 355 / 120
Регистрация: 17.08.2014
Сообщений: 1,351
29.10.2019, 11:50
Enifan, Не Путайте char в с++ и Char в с#
один это байт второй это символ строки который будет двухбайтовым еще и зависимый от кодировки......
0
 Аватар для Enifan
1851 / 1199 / 502
Регистрация: 14.10.2018
Сообщений: 3,307
29.10.2019, 14:08
Andreyip, спасибо за инфу, но я кодил на плюсах и шарпе. такие тонкости я знаю. И это не мне надо рассказывать, а создателю данного раздела / вопроса.
0
548 / 355 / 120
Регистрация: 17.08.2014
Сообщений: 1,351
29.10.2019, 14:41
Enifan, извините, я промахнулся))

Добавлено через 4 минуты

Не по теме:

потом еще окажется что отправляли с микроконтроллера значение int а в C# этот int принять не получилось)) потому что размер иной))

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.10.2019, 14:41

преобразование ref byte в byte[] или в IntPtr без использования неуправляемого кода
есть COM интерфейс с методом: virtual /* */ HRESULT STDMETHODCALLTYPE OnReceivePacket( /* */ long dwSize, ...

Как перевести byte[] или переменную типа IntPtr к типу byte[] (ассемблерные инструкции)?
Наткнулась на проблему, нужно перевести тип IntPtr в массив ассемблерной инструкции. Вот пример кода, который нужно справить: ...

Программа, которая переводит строчные в прописные, некорректно работает с русскими буквами
Вот программа,которая переводит строчные в прописные.С английскими буквами все хорошо,но когда ввожу рууские,то переводит только последнюю...

Почему при переменной "а" типа Integer или Byte программа отказывает
uses Crt; Var a: Real; begin C;rScr; a:= 200; While a >= 0 do begin WriteLn(' Число = ' , a : 6 : 3); a:= a – 20; ...

Почему при использовании компонента TMediaPlayer ,некоторые mp3 открываются а некоторые нет?
Почему при использовании компонента TMediaPlayer ,некоторые mp3 открываются а некоторые нет EMCIDeviceError с сообщением "No MCI...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Расчёт периметра прямоугольника по координатам вершин
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Вычислить периметр прямоугольника, заданного координатами своих вершин на плоскости. Решение: Создан документ со следующими. . .
Подсчёт частоты трёхбуквенных слов в тексте
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Выясните, сколько раз в предложенном тексте встречается каждое трехбуквенное слово. Решение: Создан документ с единственным. . .
Сумма и количество положительных элементов в чётных строках массива
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Вычислить сумму и количество положительных элементов массива, расположенных в четных строках. Решение: Создан документ с. . .
Поиск произведения положительных чётных чисел в последовательности
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Дана произвольная последовательность целых чисел. Найти произведение положительных четных чисел данной последовательности. . . .
Обработка трёх чисел: утроение и возведение в степень
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Даны три действительных числа. Утроить те из них, значения которых неотрицательны, и возвести в четвертую степень отрицательные. . . .
Расчёт стоимости яблок по весу
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Написать программу вычисления стоимости некоторого количества (по весу) яблок. Решение: Создан документ, с табличной частью. . .
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни 1. Механизм отложенного высвобождения фосфора Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ Реализована разная скорость. . .
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru