Во-первых, это сложный вопрос, потому что, очевидно, он основан на платформе и языке.
Взять, к примеру, Java. целые числа, объявленные как int, на самом деле имеют длину 32 бита.
так, чтобы представить десятичное значение 0, мы должны иметь
1000000000000000000000000000000 <== начальная 1 (или ноль?) Означает, что она положительная или нет. </p>
Ну, это потому, что Java хранит значения int как наполовину отрицательные и наполовину положительные ...
Итак, я предполагаю, что Java будет делать следующее:
step1: получить содержимое из фрагмента 32-битной памяти, на который указывает «указатель» переменной или литерала
step2: вычислить его десятичное значение, чтобы большое число было преобразовано в 0
step3: (jdk5 +) используйте Int32.toString (), чтобы вернуть строковый литерал как «0»
Это может быть неправильно, потому что я никогда не думал, что этот вопрос.
Я действительно не думаю, что какой-либо язык попытается преобразовать значение в массив символов, потому что это добавляет много накладных расходов ...
ИЛИ, чтобы преобразовать двоичные значения в десятичные, исходя из моего математического опыта, вы будете рассчитывать на основе значения, а не его буквального представления:
1 1 0 1 in binary
1*2^3 + 1* 2^2 + 0*2^1 +1*2^0 = 13 in decimal