Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ 16-чное представление числа

Автор: 18192123 19.05.2007 1:12

Вот такое задание - подсчитать кол-во троек в 16-ричном представлении числа.
вот что у меня получилось (но считает не все 3-ки):


#include <stdio.h>
#include <stdlib.h>
int main() {
char str[60];
unsigned x,mask;
int i=0;
printf ("Vvedite cheloe neotrichatel'noe 4islo\n");
scanf("%d", &x);
printf("V 16-oi sisteme: %x\n\n",x);
itoa(x, str, 2);
printf("vvedennoe chislo v 2-i sisteme schislenia: %s\n", str);
mask = 0x0011;
while (mask>0)
{
if ((mask&x) == mask)

i+=1;
mask<<=2;

}

printf("\nKol-vo 3-ek v 16-m predstavlenii 4isla: %d\n",i);
return 0;

}


Автор: volvo 19.05.2007 1:35

  mask = 0x3; // Почему у тебя было 0x11 ? Это не тройка, а 17
while (mask>0)
{
if ((mask&x) == mask)
i+=1;
mask<<=4; // А вот тут надо сдвигать на 4, потому что 16 ричное число представляется тетрадами

}



Автор: 18192123 19.05.2007 1:57

Понятно. спасибо!