4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
|
||||||
1 | ||||||
Пояснить результат перевода чисел в различные сс12.03.2011, 19:22. Показов 1354. Ответов 15
Метки нет (Все метки)
объясните почему число из 16ой системы , преобразуется в десятичное при таком коде:
0
|
12.03.2011, 19:22 | |
Ответы с готовыми решениями:
15
Приложение для перевода чисел в различные системы счисления Пояснить результат выполнения кода Пояснить результат работы цикла Пояснить результат выполнения кода |
Brainsbreaker
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
|
|
12.03.2011, 20:28 | 2 |
И какое у тебя выходит десятичное?
0
|
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
|
|
12.03.2011, 21:09 [ТС] | 3 |
я неправильно написал , в ячейках массива находятся символы соответствующие кодам которые я написал
0
|
21 / 21 / 3
Регистрация: 29.04.2010
Сообщений: 444
|
|
12.03.2011, 21:41 | 4 |
Тут похоже на то что ты переменной х присваиваешь адрес хранения первой переменной массива
Добавлено через 39 секунд а по умолчанию вижуал работает с десятичными числами
0
|
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
|
|
12.03.2011, 22:28 [ТС] | 5 |
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
||||||
12.03.2011, 23:18 | 6 | |||||
0
|
40 / 38 / 5
Регистрация: 22.01.2011
Сообщений: 670
|
|
13.03.2011, 00:27 | 7 |
эти числа в памяти идут так: 2A03650E , тоесть 4 байта (2А-первый, 03-2-й...), а тип int тоже занимает 4 байта. Поэтому переменная x берёт все вместе байты и преобразует в 10-ю систему.
0
|
Формучанин
364 / 294 / 42
Регистрация: 02.11.2010
Сообщений: 1,242
|
|
13.03.2011, 01:09 | 8 |
Потомучто человек живёт в 10 системе а комьютер в 16.
Когда ты составляешь массив из 4-х байт 0E 65 03 2A, то компьютер трактует его как число 2A 03 65 0E (обратный порядок байтов) int это десятичное представление, если перевести 2A03650E в 10-тичное то получим 704 865 550
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
|
13.03.2011, 01:55 | 9 |
Это вывод по умолчанию в десятичной системе. К тому же у ТС значения массива неправильно заданы. Я же работающий пример показал. Просто из любопытства скомпилируйте, запустите...
1
|
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
|
|
13.03.2011, 10:08 [ТС] | 10 |
это прямой порядок
Добавлено через 4 минуты а почему в выражении два указателя? какой из них на что указывает ?
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
13.03.2011, 10:26 | 11 |
в каком выражении? "printf("%x\n", *(int*)a);"? Тут сначала указатель на char приводится к типу указателя на int: (int*) a, а потом с помощью операции разыменования передаем значение, на которое указывает указатель, в функцию printf
0
|
40 / 38 / 5
Регистрация: 22.01.2011
Сообщений: 670
|
|
13.03.2011, 10:32 | 12 |
Из любопытства уже смотрел не раз, благодарю.
а внешние *((...)) - разыменовывается всё число (4 байта).
0
|
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
|
|
13.03.2011, 12:06 [ТС] | 13 |
0
|
40 / 38 / 5
Регистрация: 22.01.2011
Сообщений: 670
|
||||||
13.03.2011, 12:11 | 14 | |||||
int да, если не форматировать
0
|
Формучанин
364 / 294 / 42
Регистрация: 02.11.2010
Сообщений: 1,242
|
|
13.03.2011, 12:30 | 15 |
От того что число представить в 10-й системе, его значение в 2\16-ричной не изменится.
можно в printf засунуть %x и вывод будет в 16-ричной)
0
|
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
|
|
13.03.2011, 12:37 [ТС] | 16 |
0
|
13.03.2011, 12:37 | |
13.03.2011, 12:37 | |
Помогаю со студенческими работами здесь
16
Пояснить результат выполнения кода Пояснить результат работы кода Пояснить результат работы кода Не работает программа перевода в различные системы счисления Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |