Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 02.03.2008, 13:55   #1
drossel
 
Регистрация: 01.03.2008
Сообщений: 7
По умолчанию язык Си, задача - переводим в 16-й код, старшие три бита интерпретируем как некое число n

Добрый день, вечер, утро!!!
Нужно написать вот такую задачу на С
Вводим число, переводим в 16-й код, старшие три бита интерпретируем как некое число n , все остальные разряды сдвинуть циклически вправо на n разрядов, вывод в 16-ом коде.

Я тут немного накидал, но неуверен, помогите!!!

#include <stdio.h>
main()
{
unsigned x;
int i;
scanf ("%x",& x);
for(i=1; i= 8*sizeof x; i++)
{
int i=x&0xE0000000;
unsigned int src = xxx;
unsigned int n = src >> 29;
unsigned int dst = (src >> n) | (src << (32 - n ));
printf ("%x",x);
}}
drossel вне форума
Старый 02.03.2008, 16:23   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

drossel, в чём именно помочь? Что должно выводиться, что такое "xxx", зачем Вы выводите "x" в неизменном виде? Что за "i= 8*sizeof x" в условии цикла? Сформулируйте сначала задачу, как она есть: что ввести, как обработать, что вывести, потом будем думать, что с Вашим кодом делать.

Последний раз редактировалось B_N; 02.03.2008 в 16:48. Причина: Переложил код новым постом.
B_N вне форума
Старый 02.03.2008, 16:40   #3
drossel
 
Регистрация: 01.03.2008
Сообщений: 7
По умолчанию

Вводим с клавиатуры десятичное число, переводим в проге 16-ричное, старшие три бита от этого числа интерпретируем как некое число n , все остальные разряды сдвигаем циклически вправо на n разрядов, выводим получившееся число (16-ричное).

#include <stdio.h>
main()
{
unsigned x;
int i;
scanf ("%x",& x);
for(i=1; i= 8*sizeof x; i++) //задаём счётчик пробегаемся бо числу
{
int i=x&0xE0000000;//берём старшие три бита
unsigned int src = xxx;
unsigned int shift = src >> 29;//оставшиеся сдвигаем на n с учётом, что
unsigned int dst = (src >> shift) | (src << (32 - shift ));//число 4байта
printf ("%x",x);
}}
выше описанное - не является прогой,просто нашёл в книгах , может пригодится
drossel вне форума
Старый 02.03.2008, 16:48   #4
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Код:
#include <stdio.h>

int main()
{
	unsigned long x, n, i, bit;

	scanf("%d", &x);
	n = (x & 0xE0000000) >> 29; // здесь так много для наглядности, на самом деле достаточно n = x >> 29
	x &= ~0xE0000000;

	for(i = 0; i < n; i++){
		bit = x & 1;
		x >>= 1;
		x |= (bit << 31);
	}
	printf("0x%08X\n", x);	
	return 0;
}

Последний раз редактировалось B_N; 02.03.2008 в 21:24. Причина: Пропустил "=" в 13-й строке, теперь есть
B_N вне форума
Старый 02.03.2008, 17:01   #5
drossel
 
Регистрация: 01.03.2008
Сообщений: 7
По умолчанию

B_N, большое спасибо за помощь!!!
drossel вне форума
Старый 02.03.2008, 17:24   #6
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Эх.. drossel, поправьте потом 13-ю строчку, я там нечаянно "=" сначала пропустил.
B_N вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти и вывести все слова,у котоpых число гласных букв пpевышает число согласных. Briz Помощь студентам 2 11.05.2008 00:56
Элементы массива и старшие цифры logistics Помощь студентам 4 22.04.2008 00:12
Число Армстронга. Язык Си. Bo2nik Помощь студентам 3 01.04.2008 12:26
Замена второго бита в числе SZR Помощь студентам 4 25.01.2008 20:16
Число N, заменить одну из его цифр, чтобы получилось число, max близкое к некоторой степени двойки urgu_st Помощь студентам 13 23.10.2007 09:14