-
Notifications
You must be signed in to change notification settings - Fork 0
/
unsigned.c
89 lines (64 loc) · 1.85 KB
/
unsigned.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include<stdio.h>
#include<string.h>
#include<limits.h>
#include "unsigned.h"
/*
-- tehtävänä on toteuttaa neljä funktiota, jotka toteuttavat edellä kuvatunlaisen
intervallin arvojen tulostuksen neljälle eri etumerkittömälle tyypille.
Funktiot eroavat toisistaan ainoastaan sen suhteen, mitä etumerkitöntä tyyppiä arvojen käsittelyssä käytetään.
*/
int main(int argc, char* argv[]) {
ucharIntervalli(150, 50);
printf("\n");
ushortIntervalli(45000, 15000);
printf("\n");
uintIntervalli(3300000000, 1100000000); /* 3,3 & 1,1 mrd*/
printf("\n");
ulongIntervalli(9000000000000000000, 3000000000000000000);
return 0;
}
/*
Mene väli [-sade, sade], muuttaen arvot unsigned char:ksi.
Täten esim. -150 muuttuu luvuksi 106 (UMAX-sade+1 ==> 255-100+1 = 106)
*/
void ucharIntervalli(unsigned char sade, unsigned char askel) {
printf("unsigned char:");
int v = -sade;
while(v <= sade) {
printf(" %d", (unsigned char) v);
v += askel;
}
}
/* [−32,767, +32,767] */
void ushortIntervalli(unsigned short sade, unsigned short askel) {
printf("ushortIntervalli:");
int v = -sade;
while(v <= sade) {
printf(" %d", (unsigned short int) v);
v += askel;
}
}
void uintIntervalli(unsigned int sade, unsigned int askel) {
printf("uintIntervalli:");
int i = 0;
while(-sade + i*askel < -sade + (i+1)*askel ) {
printf(" %lu", -sade + i*askel);
printf(" [seur: %li] \n", -sade + (i+1)*askel );
i++;
}
while(-sade + i*askel <= sade && -sade + i*askel >= 0) {
printf(" %lu", -sade + i*askel);
printf(" [seur: %li] \n", -sade + (i+1)*askel );
i++;
}
/*printf("%ui", -1100000000);
*/
}
void ulongIntervalli(unsigned long sade, unsigned long askel) {
printf("ulongIntervalli:");
long int v = -sade;
while(v <= sade) {
printf(" %d", (unsigned long int) v);
v += askel;
}
}