Если при переводе целых чисел мы при переводе из 10-й системы при переводе в другую делим на основание системы перевода , то с дробями мы совершаем обратные действия мы УМНОЖАЕМ на основание системы счисления в которую переводим на 2 , 8 или 16, потом при произведении целая часть отбрасывается и переводится в цифру той сиситемы в которую переводим и сноваа умножаем дробную часть на основанине,до тех пор пока в дроби не получится 0 или так и будет бесконечная дробь
3. 0.0625 в 16 ричную сисстему
0.0625*16=1 целая часть 1 дробная 0 получаем что 0.0625 (10)=0.1 (16)
2. 0.0625 в 8 ричную
0.0625 * 8= 0.5 получается целая 0 дробная 5 - целую пишем как главную после запятой а 0.5 снова умножаем на 8 0.5*8=4 целая 4 дробная 0
0.0625 (10)=0.04 (8)
1. 0.025 в 2 чную
0.025*2=0.05 целая 0 дробная 05 снова дробную на 2 0.05*2= 0.1 целая 0 дробная 1 умножаем на 2 0.1*2= 0.2 целая 0 дробь 2 0.2*2=0.4 целая 0 дробь 4 0ю4*2=0.8 цлая 0 дробь 8 0.8*2=1.6 целая 1 дробь 6 0.6*2=1.2 целая 1 дробь 2 и получается что с этого места начинается периодическая дробь так как 0.2 мы уже раньше видели итак
int main(){ int* a = 71; a = a + 1; printf("%d\n", a); }
Да, программа работает и выводит 75. Компилятор дает предупреждение: warning: initialization makes pointer from integer without a cast [enabled by default] int* a = 71; ^ В языке С инициализация указателя из целого числа без явного приведения вызывает сообщение о предупреждении. Его можно обойти, записав int* a = (int*) 71;
Само значение 75 объясняется просто: указатель, имеющий значение 71, при добавлении 1 наращивается не на 1, а на 1, умноженную на длину указателя (4 байта для integer), поскольку именно так реализуется арифметика указателей. 71+4=75.
Ну это не совсем тривиальное действие
Если при переводе целых чисел мы при переводе из 10-й системы при переводе в другую делим на основание системы перевода , то с дробями мы совершаем обратные действия мы УМНОЖАЕМ на основание системы счисления в которую переводим на 2 , 8 или 16, потом при произведении целая часть отбрасывается и переводится в цифру той сиситемы в которую переводим и сноваа умножаем дробную часть на основанине,до тех пор пока в дроби не получится 0 или так и будет бесконечная дробь
3. 0.0625 в 16 ричную сисстему
0.0625*16=1 целая часть 1 дробная 0 получаем что 0.0625 (10)=0.1 (16)
2. 0.0625 в 8 ричную
0.0625 * 8= 0.5 получается целая 0 дробная 5 - целую пишем как главную после запятой а 0.5 снова умножаем на 8 0.5*8=4 целая 4 дробная 0
0.0625 (10)=0.04 (8)
1. 0.025 в 2 чную
0.025*2=0.05 целая 0 дробная 05 снова дробную на 2 0.05*2= 0.1 целая 0 дробная 1 умножаем на 2 0.1*2= 0.2 целая 0 дробь 2 0.2*2=0.4 целая 0 дробь 4 0ю4*2=0.8 цлая 0 дробь 8 0.8*2=1.6 целая 1 дробь 6 0.6*2=1.2 целая 1 дробь 2 и получается что с этого места начинается периодическая дробь так как 0.2 мы уже раньше видели итак
0.025 (10)= 0.0000011001100110 (2)= 0.0000(0110) (2)