Krishna Veni Ответов: 4

Проблема с консолью.метод WriteLine()


using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(1+'1');
            Console.ReadLine();
             
        }
    }
}


Над результатом программы 50.at режим отладки у меня был findout '1' take as 49 и final result 50, а также если u take '2' result is 51.is это какой-то порядок следования.почему его представляют.
пожалуйста, помогите мне.
спасибо тебе.

Что я уже пробовал:

Над результатом программы 50.at режим отладки у меня был findout '1' take as 49 и final result 50, а также если u take '2' result is 51.is это какой-то порядок следования.почему его представляют.

0x01AA

'1' - это символ, который имеет порядковый шестнадцатеричный номер 0x31 или десятичный номер 49. Поэтому 49+1= 50 - это очень хорошо. Для получения дополнительной информации google for "ascii table" и прочитайте что-то вроде этого:
https://www.asciitable.com/[^]

4 Ответов

Рейтинг:
2

Ravi Bhavnani

Числовое значение символа '1' равно 49.  Список общих символьных значений ASCII см. По этой ссылке: Таблица Ascii - коды символов ASCII и html, восьмеричное, шестнадцатеричное и десятичное преобразование диаграмм[^]. Печатаемое выражение приводит к тому, что целочисленное значение (49) символа '1' добавляется к целочисленному литералу 1, следовательно, выводится значение 50.

/Рави


Рейтинг:
1

Dave Kreskowiak

Единственная проблема здесь-это ваше понимание. Вы добавляете целочисленное значение 1 к символу "1", который имеет код ASCII 49 (десятичный). Итак, 1 + 49 = 50.


Рейтинг:
1

OriginalGriff

Видеть здесь: Таблица Ascii - коды символов ASCII и html, восьмеричное, шестнадцатеричное и десятичное преобразование диаграмм[^] Он показывает вам значения каждого кода ASCII.
Поскольку вы используете C#, на самом деле это символ Unicode, а не ASCII, но для интересующих вас символов ASCII подходит (Unicode-это надмножество ASCII по большей части, но поскольку он имеет ширину 16 бит, а не 7 или 8, гораздо легче читать карту набора!). Таблица символов Unicode® [^]

Если вы хотите увеличить до следующего символа, то вы можете это сделать. Попробовать это:

char c = '1';
for (int i = 0; i < 30; i++)
    {
    Console.WriteLine("{0}:{1}", i + c, (char) (i + c));
    }


Рейтинг:
0

Richard MacCutchan

Ключевым моментом здесь является порядок значений в вашем выражении. Если первое значение представляет собой число или один символ, то выражение преобразуется в два числа. Если первое значение является строкой, то второе значение будет преобразовано в строку и оба они будут объединены.

Console.WriteLine(1 + '1'); // adds 1 + 49
Console.WriteLine('1' + 1); // adds 49 + 1
Console.WriteLine("1" + 1); // concatenates "1" and "1"

Выход будет таким:
50
50
11


Richard Deeming

То приказ из этих ценностей не имеет значения; это тип о ценностях, которые имеют значение. :)

Console.WriteLine(1 + "1"); // Also concatenates "1" and "1"

Richard MacCutchan

Спасибо, я виноват, что не проверил последнее дело, не понял очевидного из первых двух..