Непонятно, если спрашиваешь как перевести, то как ты написал программу. Если же почти написал то зачем спрашиваешь? Спрашивай конкретно про то, что не работаеткак мне перевести число с шестнадцатеричной системы счисления, скажем в десятеричную ?
Вводить, я так понимаю, будем строку (например число 7DA), а как потом её переделать в число.
написал прогу, которая переводит с любой системы (с 2 до 10ти ричной) в любую (проверял на 3,4,5,8,10,16ти ричной, работает), осталось только немного дописать
п.с. нужно для С.
всё, всё сделал. не знал как правильно считать число (например 3A4F) и потом с ним работать.Непонятно, если спрашиваешь как перевести, то как ты написал программу. Если же почти написал то зачем спрашиваешь? Спрашивай конкретно про то, что не работает
А вообщеYou must be registered for see links.
int a[20],i=0;
char n[20];
scanf("%s",&n);
while (n[i]!='\0'){
switch (n[i]){
case 'A':a[i]=10;break;
case 'B':a[i]=11;break;
case 'C':a[i]=12;break;
case 'D':a[i]=13;break;
case 'E':a[i]=14;break;
case 'F':a[i]=15;break;
default:a[i]=n[i]-'0';
}
i++;
}
если бы надо было работать только с шестнадцатеричной и десятичной, то надо юзать:всё, всё сделал. не знал как правильно считать число (например 3A4F) и потом с ним работать.
сделал так:
Код:int a[20],i=0; char n[20]; scanf("%s",&n); while (n[i]!='\0'){ switch (n[i]){ case 'A':a[i]=10;break; case 'B':a[i]=11;break; case 'C':a[i]=12;break; case 'D':a[i]=13;break; case 'E':a[i]=14;break; case 'F':a[i]=15;break; default:a[i]=n[i]-'0'; } i++; }
int x;
scanf("%X",&x); /или %x если буковки маленькие
нет, нужно с любой в любую переводить, по этому так не получитсяесли бы надо было работать только с шестнадцатеричной и десятичной, то надо юзать:
т.е. мы говорим что нужно считать шестнадцатеричное числоКод:int x; scanf("%X",&x); /или %x если буковки маленькие
если нужно вывести с буковками, то довольно просто - взять это число в десятичной и сделать строку через функцию itoa в ней третий параметр - система счисления
Все верно, хотя собственно буквы тоже идут последовательно, так что можно делать проще:всё, всё сделал. не знал как правильно считать число (например 3A4F) и потом с ним работать.
сделал так:
Код:int a[20],i=0; char n[20]; scanf("%s",&n); while (n[i]!='\0'){ switch (n[i]){ case 'A':a[i]=10;break; case 'B':a[i]=11;break; case 'C':a[i]=12;break; case 'D':a[i]=13;break; case 'E':a[i]=14;break; case 'F':a[i]=15;break; default:a[i]=n[i]-'0'; } i++; }
for (int i = 0; i < strlen(str); i++) {
if ('9' >= str[i] && str[i] >= '0')
num[i] = str[i] - '0';
if ('a' >= str[i] && str[i] >= 'z')
num[i] = str[i] - 'a' + 10;
if ('A' >= str[i] && str[i] >= 'Z')
num[i] = str[i] - 'A' + 10;
}
#include <stdio.h>
#include <stdlib.h>
#define N 20
float *input(float *a){
float *arr=a;
for (;arr<a+N;arr++)
*arr=random(10)-5;
return a;
}
void main(){
float p[N];
randomize();
input(p)
}
#include<stdio.h>
#include<stdlib.h>
#define n 2
void input(int arr[][]){
int i=0, j=0;
for (;i<n;i++){
for (;j<n;j++){
arr[i][j]=random(10)-5;
printf("%d",arr[i][j]);
}
}
}
void main(){
int a[n][n];
randomize();
input(a[n][n]);
}