Почему последний шестнадцатеричный результат равен 0*43? Почему не 43?
#include<iostream> using namespace std; int main() { int x; cout<<"Enter an int:"; cin>>x; cout<<hex<<x<<endl <<oct<<x<<endl; cout<<x<<endl; cout<<showbase<<dec<<x<<endl; cout<<showbase<<hex<<x; return 0; }
Мой вопрос заключается в том, почему последний шестнадцатеричный результат равен 0*43?
потому что результат этой программы таков:
Введите интервал:67
43
103
103
67
0x43
Что я уже пробовал:
Я искал об этом, и я увидел такой результат:"когда showbase формате флаг установлен, численные целочисленных значений вложено в выходной потоки имеют префикс с той же приставки, используемый в C++ литеральные константы: значение 0x для шестнадцатеричных значений (см. шестигранный), 0 для восьмеричных значений (см. октября) и приставки для десятичных-базовые значения (см. декабрь)."
Но есть ли у этого особая причина, что 0*или для восьмеричного оно должно быть с 0?