Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
chazog
/
iax0583
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
ca5d1e82
authored
6 years ago
by
chazog
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Delete Bonus task.c
parent
edbdda37
master
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
0 additions
and
384 deletions
Lab9/Bonus task.c
Lab9/Bonus task.c
deleted
100644 → 0
View file @
edbdda37
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <math.h>
int
valDec
(
char
*
string
);
int
valHex
(
char
*
string
);
int
valOct
(
char
*
string
);
int
valBin
(
char
*
string
);
int
decToHex
(
int
n
);
int
decToOct
(
int
n
);
int
decToBin
(
int
n
);
int
main
()
{
int
r
=
0
;
do
{
int
i
,
val
,
d
=
0
,
dig
=
0
,
p
,
base
,
len
,
dec
=
0
;
char
string
[
100
];
do
{
printf
(
"Enter the base of the number that you would like to check.
\n
\
1 - Decimal
\n
\
2 - Hexadecimal
\n
\
3 - Octal
\n
\
4 - Binary
\n
\
5 - EXIT
\n
"
);
scanf
(
"%d"
,
&
base
);
switch
(
base
)
{
case
1
:
printf
(
"Enter the number: "
);
scanf
(
"%s"
,
string
);
p
=
valDec
(
string
);
if
(
p
==
0
)
{
printf
(
"Given input is a decimal number
\n
"
);
d
=
1
;
len
=
strlen
(
string
);
for
(
i
=
0
;
i
<
len
;
i
++
)
{
dec
=
dec
*
10
+
(
string
[
i
]
-
'0'
);
}
}
else
{
printf
(
"Given input is not a decimal number
\n\n
"
);
d
=
0
;
}
break
;
case
2
:
printf
(
"Enter the number: "
);
scanf
(
"%s"
,
string
);
p
=
valHex
(
string
);
if
(
p
==
0
)
{
printf
(
"Given input is a Hexadecimal number
\n
"
);
d
=
1
;
len
=
strlen
(
string
);
dig
=
len
-
1
;
for
(
i
=
0
;
i
<
len
;
i
++
)
{
if
(
string
[
i
]
>=
'0'
&&
string
[
i
]
<=
'9'
)
{
val
=
string
[
i
]
-
48
;
}
else
if
(
string
[
i
]
>=
'a'
&&
string
[
i
]
<=
'f'
)
{
val
=
string
[
i
]
-
97
+
10
;
}
else
if
(
string
[
i
]
>=
'A'
&&
string
[
i
]
<=
'F'
)
{
val
=
string
[
i
]
-
65
+
10
;
}
dec
=
dec
+
val
*
pow
(
16
,
dig
);
dig
--
;
}
}
else
{
printf
(
"Given input is not Hexadecimal number
\n\n
"
);
d
=
0
;
}
break
;
case
3
:
printf
(
"Enter the number: "
);
scanf
(
"%s"
,
string
);
p
=
valOct
(
string
);
if
(
p
==
0
)
{
printf
(
"Given input is an Octadecimal number
\n
"
);
d
=
1
;
len
=
strlen
(
string
);
for
(
i
=
0
;
i
<
len
;
i
++
)
{
dec
=
dec
*
8
+
(
string
[
i
]
-
'0'
);
}
}
else
{
printf
(
"Given input is not an Octadecimal number
\n\n
"
);
d
=
0
;
}
break
;
case
4
:
printf
(
"Enter the number: "
);
scanf
(
"%s"
,
string
);
p
=
valBin
(
string
);
if
(
p
==
0
)
{
printf
(
"Given input is a Binary number
\n
"
);
d
=
1
;
len
=
strlen
(
string
);
for
(
i
=
0
;
i
<
len
;
i
++
)
{
dec
=
dec
*
2
+
(
string
[
i
]
-
'0'
);
}
}
else
{
printf
(
"Given input is not a Binary number
\n\n
"
);
d
=
0
;
}
break
;
case
5
:
r
=
1
;
return
0
;
break
;
default:
printf
(
"Invalid option! Choose a valid option
\n
"
);
d
=
0
;
break
;
}
}
while
(
d
==
0
);
do
{
printf
(
"
\n\n
Select which base you would like to convert it into
\n
\
1 - Decimal
\n
\
2 - Hexadecimal
\n
\
3 - Octal
\n
\
4 - Binary
\n
"
);
scanf
(
"%d"
,
&
base
);
switch
(
base
)
{
case
1
:
printf
(
"The decimal value is %d"
,
dec
);
d
=
1
;
break
;
case
2
:
printf
(
"The Hexadecimal value for the input is: "
);
decToHex
(
dec
);
d
=
1
;
break
;
case
3
:
printf
(
"The Octadecimal value for the input is: "
);
decToOct
(
dec
);
d
=
1
;
break
;
case
4
:
printf
(
"The binary value for the input is: "
);
decToBin
(
dec
);
d
=
1
;
break
;
default:
printf
(
"Invalid option! Choose a valid option
\n
"
);
d
=
0
;
break
;
}
}
while
(
d
==
0
);
printf
(
"
\n\n\n
"
);
}
while
(
r
==
0
);
return
0
;
}
int
valDec
(
char
string
[
100
])
{
int
length
,
i
,
val
;
length
=
strlen
(
string
);
for
(
i
=
0
;
i
<
length
;
i
++
)
{
if
(
!
isdigit
(
string
[
i
]))
{
val
=
1
;
}
else
{
val
=
0
;
}
}
return
val
;
}
int
valHex
(
char
string
[
100
])
{
int
length
,
i
,
val
;
length
=
strlen
(
string
);
for
(
i
=
0
;
i
<
length
;
i
++
)
{
if
(
!
isxdigit
(
string
[
i
]))
{
val
=
1
;
}
else
{
val
=
0
;
}
}
return
val
;
}
int
valOct
(
char
string
[
100
])
{
int
length
,
i
,
val
;
length
=
strlen
(
string
);
for
(
i
=
0
;
i
<
length
;
i
++
)
{
if
(
string
[
i
]
==
'0'
||
string
[
i
]
==
'1'
||
string
[
i
]
==
'2'
||
string
[
i
]
==
'3'
||
string
[
i
]
==
'4'
||
string
[
i
]
==
'5'
||
string
[
i
]
==
'6'
||
string
[
i
]
==
'7'
)
{
val
=
0
;
}
else
{
val
=
1
;
}
}
return
val
;
}
int
valBin
(
char
string
[
100
])
{
int
length
,
i
,
val
;
length
=
strlen
(
string
);
for
(
i
=
0
;
i
<
length
;
i
++
)
{
if
(
string
[
i
]
==
'0'
||
string
[
i
]
==
'1'
)
{
val
=
0
;
}
else
{
val
=
1
;
}
}
return
val
;
}
int
decToHex
(
int
n
)
{
char
hex
[
1000
];
int
j
,
temp
,
i
=
0
;
while
(
n
!=
0
)
{
temp
=
0
;
temp
=
n
%
16
;
if
(
temp
<
10
)
{
hex
[
i
]
=
temp
+
48
;
i
++
;
}
else
{
hex
[
i
]
=
temp
+
55
;
i
++
;
}
n
=
n
/
16
;
}
for
(
j
=
i
-
1
;
j
>=
0
;
j
--
)
{
printf
(
"%c"
,
hex
[
j
]);
}
return
0
;
}
int
decToOct
(
int
n
)
{
int
oct
[
1000
];
int
j
,
i
=
0
;
while
(
n
>
0
)
{
oct
[
i
]
=
n
%
8
;
n
=
n
/
8
;
i
++
;
}
for
(
j
=
i
-
1
;
j
>=
0
;
j
=
j
-
1
)
{
printf
(
"%d"
,
oct
[
j
]);
}
return
0
;
}
int
decToBin
(
int
n
)
{
int
bin
[
1000
];
int
j
,
i
=
0
;
while
(
n
>
0
)
{
bin
[
i
]
=
n
%
2
;
n
=
n
/
2
;
i
++
;
}
for
(
j
=
i
-
1
;
j
>=
0
;
j
=
j
-
1
)
{
printf
(
"%d"
,
bin
[
j
]);
}
return
0
;
}
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment