Составьте программу для функции HTOI(S), которая преоб-
разует строку шестнадцатеричных цифр в эквивалентное ей це-
лое значение. При этом допустимыми цифрами являются цифры от
1 до 9 и буквы от а до F.
Другие языки программирования и технологии
нужно составить маленькую программу на С++, пожалуйста
#include < iostream >
#include < string.h >
using namespace std;
unsigned long long HTOI(char* s)
{
unsigned long long r,k=0;
int i,t=0;
for(i=strlen(s)-1; i >= 0; i--, t += 4) r=s[ i ], k += ( (r & 0x0F|((r & 0x40) >> 3))+((r & 0x40) >> 6) << t);
return k;
}
void main()
{
cout << HTOI("ABCDEFabcdef") << endl;
}
#include < string.h >
using namespace std;
unsigned long long HTOI(char* s)
{
unsigned long long r,k=0;
int i,t=0;
for(i=strlen(s)-1; i >= 0; i--, t += 4) r=s[ i ], k += ( (r & 0x0F|((r & 0x40) >> 3))+((r & 0x40) >> 6) << t);
return k;
}
void main()
{
cout << HTOI("ABCDEFabcdef") << endl;
}
ну удачи тебе!
Коли уж учишься, делай сама. За тебя составлять программу не буду, но подсказку дам. Здесь все понятно объясняется, думаю, сложностей не должно вызвать.
Если Вы учитесь, то лучше самой это написать, много полезного узнаете
#include <stdio.h>
#include <string.h>
#define NL '\n'
#define MAX 24
int htoi(char *hexd);
int
main(void)
{
char str[MAX] = {0};
char hex[] = "0123456789ABCDEFabcdef\0";
int c;
int i;
int x = 0;
while((c = getchar()) != EOF) {
for(i = 0; hex != '\0'; i++) {
if(c == hex)
str[x++] = c;
}
if(c == NL) {
printf("%d\n", htoi(str));
x = 0, i = x;
}
}
return 0;
}
int
htoi(char *hexd)
{
int i;
int n = 0;
for(i = 0; isdigit(hexd); i++)
n = (16 * i) + (hexd - '0');
for(i = 0; isupper(hexd); i++) /* Let's just deal with lowercase characters */
hexd = hexd + 'a' - 'A';
for(i = 0; islower(hexd); i++) {
hexd = hexd - 'a';
n = (16 + i) + hexd + 10;
n = hexd + 10;
}
return n;
}
#include <string.h>
#define NL '\n'
#define MAX 24
int htoi(char *hexd);
int
main(void)
{
char str[MAX] = {0};
char hex[] = "0123456789ABCDEFabcdef\0";
int c;
int i;
int x = 0;
while((c = getchar()) != EOF) {
for(i = 0; hex != '\0'; i++) {
if(c == hex)
str[x++] = c;
}
if(c == NL) {
printf("%d\n", htoi(str));
x = 0, i = x;
}
}
return 0;
}
int
htoi(char *hexd)
{
int i;
int n = 0;
for(i = 0; isdigit(hexd); i++)
n = (16 * i) + (hexd - '0');
for(i = 0; isupper(hexd); i++) /* Let's just deal with lowercase characters */
hexd = hexd + 'a' - 'A';
for(i = 0; islower(hexd); i++) {
hexd = hexd - 'a';
n = (16 + i) + hexd + 10;
n = hexd + 10;
}
return n;
}
Похожие вопросы
- Нужно составить программу на ассемблере
- Нужно составить программу на Delphi.
- Помогите, люди добрые! Составьте код программы на Borland Paskal, пожалуйста!
- Помогите пожалуйста я вас о4ень прошу !нужно составить программу в паскале....
- помогите пожалуйста, нужно составить программу на языке Паскаль
- Нужно составить программу в паскале!!
- Закодируйте по Хэммингу: 1110000100. нужно составить таблицу Составьте таблицу. ПОМОГИТЕ ПОЖАЛУЙСТА
- составить программы для паскаля, пожалуйста*
- Нужно составить программу на Pascal.
- Нужно составить программу