zamiana liczb na rozne systemy przy pomocy wskaznikow

0

Tutaj kilka programikow

#include <stdio.h>
#include <conio.h>
int liczba;
int main()
{
clrscr();
printf("Podaj liczbe dziesietna calkowita ? \n");
scanf("%d", &liczba);
printf("\nSzesnastkowo to wynosi: ");
printf("%x",liczba);
getch();
return 0;
}

#include <stdio.h>
#include <conio.h>
int liczba;
int main()
{
clrscr();
printf("Podaj liczbe SZESNASTKOWA-np. AF - DUZE LITERY: \n");
scanf("%X", &liczba);
printf("%s","\nDziesietnie to wynosi: ");
printf("%d",liczba);
getch();
return 0;
}

#include<stdio.h>
#include<conio.h>
int bin(int a,int n)
{
return((a>>n)&1);
}
main()
{
int wynik,i,q;

clrscr();
printf("Podaj liczbe w systemie dziesietnym ");
scanf("%d",&q);
for(i=15;i>=0;i--)
{
wynik=bin(q,i);
if(wynik==0)
{
printf("0");
}else
{
printf("1");
}
}
getch();
return 0;
}

to to umiem napisac ale jak napisac taki sam program np liczbe dwojkowa zamiec na dziesietna osemkowa i szesnastkowa (lub dziesietna na dwojkowa osemkowa i szesnastkowa) w odwolaniu do zmiennych poprzez referencje/wskazniki ???????????
prosze o pomoc

0

po pierwsze - używaj < cpp>< /cpp>
po drugie - BYŁO!!!

0
#include <stdio.h>
#include <math.h>
#include <string.h>


char const * const digit="0123456789abcdefghijklmnopqrstuvwxyz";

char* strn(unsigned long liczba,char podstawa){
  static char wynik[33]; // 32 bity + 0
  char i=1+log(liczba)/log(podstawa);
  wynik[i]=0;                      
  while(i--){
    wynik[i]=digit[liczba%podstawa];
    liczba/=podstawa;
  }
  return wynik;
}

unsigned long val(char* znaki,unsigned char podstawa,unsigned char& error){
  // val - znasz to z tp

  unsigned long  w=0;   // w jak wynik

  char* zn=new char[strlen(znaki)+1];

  strcpy(zn,znaki);     // zeby nie zmieniac ciagu wejsciowego
  strlwr(zn);           // lower case, bo digit to male cyferki

  for(unsigned char i=0;zn[i];i++){
    w*=podstawa;
    error=(strchr(digit,zn[i])-digit);
    if(error>=podstawa){
      error=1+i;
      break;
    }
    w+=error;
    error=0;
  }
  delete zn;
  return w;
}

int main(){
  unsigned char  i,err;
  unsigned long  wynik;

  for(i=2;i<20;i++){
    wynik=val("345",i,err);
    printf("podstawa: %d   error: %d   ",i,err); // err-1 znak jest bledny
    if(!err)printf("string: %s   value: %d   \n",strn(wynik,10),wynik);
      else printf("\n");
  }
  return 0;
}

Było, nie było...

1 użytkowników online, w tym zalogowanych: 0, gości: 1