#include <stdio.h>
int main(){
int i;
float x;
float sum_decimal = 0, sum_integer = 0;
for(i = 0, x = 0.0; i <= 100; i++, x += 0.01){
sum_decimal += x; sum_integer += (i / 100.0);
}
printf("小数制御の累計は%fで整数制御の累計は%fでした。", sum_decimal, sum_integer);
return 0;
}
演習 7-10
#include <stdio.h>
int main(){
int i;
float x;
for(i = 0, x = 0.0; i <= 100; i++, x += 0.01){
printf("x = %f ", x); printf("x = %f\n", i / 100.0);
}
return 0;
}
int main(){
int i;
float x;
for(i = 0, x = 0.0; i <= 100; i++, x += 0.01){
printf("x = %f ", x); printf("x = %f\n", i / 100.0);
}
return 0;
}
演習 7-9
#include <stdio.h>
#include <math.h>
int main(){
double square;
printf("正方形の面積を入力してください:");
scanf("%lf", &square);
printf("正方形の一辺の長さは%lfです。", sqrt(square));
return 0;
}
#include <math.h>
int main(){
double square;
printf("正方形の面積を入力してください:");
scanf("%lf", &square);
printf("正方形の一辺の長さは%lfです。", sqrt(square));
return 0;
}
演習 7-8
#include <stdio.h>
int main(){
float a;
double b;
long double c;
printf("float型のサイズは%dです\n", sizeof(a));
printf("double型のサイズは%dです\n", sizeof(b));
printf("long double型のサイズは%dです\n", sizeof(c));
return 0;
}
int main(){
float a;
double b;
long double c;
printf("float型のサイズは%dです\n", sizeof(a));
printf("double型のサイズは%dです\n", sizeof(b));
printf("long double型のサイズは%dです\n", sizeof(c));
return 0;
}
演習 7-7
#include <stdio.h>
int main(){
float a;
double b;
long double c;
printf("float型の値:"); scanf("%f", &a);
printf("double型の値:"); scanf("%lf", &b);
printf("long double型の値:"); scanf("%lf", &c);
printf("float型の値は%fです\n", a);
printf("double型の値は%lfです\n", b);
printf("long double型の値は%lfです\n", c);
return 0;
}
int main(){
float a;
double b;
long double c;
printf("float型の値:"); scanf("%f", &a);
printf("double型の値:"); scanf("%lf", &b);
printf("long double型の値:"); scanf("%lf", &c);
printf("float型の値は%fです\n", a);
printf("double型の値は%lfです\n", b);
printf("long double型の値は%lfです\n", c);
return 0;
}
演習 7-6
#include <stdio.h>
int main(){
unsigned x, y, z;
x = 3700000000;
y = 3000000000;
z = x + y;
printf("zの値は%uです\n", z);
return 0;
}
int main(){
unsigned x, y, z;
x = 3700000000;
y = 3000000000;
z = x + y;
printf("zの値は%uです\n", z);
return 0;
}
演習 7-5
#include <stdio.h>
void printbits(unsigned x) {
int i;
for (i = (8 * sizeof(unsigned)) - 1; i >= 0; i--) {
if ((x >> i) & 1) {
putchar('1');
}
else {
putchar('0');
}
}
}
unsigned lrotate(unsigned x, int n) {
int bits = (8 * sizeof(unsigned));
return (n ? (x << n) | (x >> (bits - n)) : x);
}
unsigned set_n(unsigned x, int pos, int n) {
for (int i = pos; i <= pos + n - 1; i++) {
x = (x | lrotate(1U, i));
}
return x;
}
unsigned reset_n(unsigned x, int pos, int n) {
for (int i = pos; i <= pos + n - 1; i++) {
x = (x & ~lrotate(1U, i));
}
return x;
}
unsigned inverse_n(unsigned x, int pos, int n) {
for (int i = pos; i <= pos + n - 1; i++) {
x = (x ^ lrotate(1U, i));
}
return x;
}
int main() {
unsigned x;
int pos, n;
printf("整数を入力して下さい:"); scanf("%u", &x);
printf("何ビット目を変更しますか?:"); scanf("%d", &pos);
printf("そこから何ビット変更しますか?:"); scanf("%d", &n);
printf("元の数:"); printbits(x); putchar('\n');
printf("%dビット目~%dビット目を1にした数", pos, pos + n - 1); printbits(set_n(x, pos, n)); putchar('\n');
printf("%dビット目~%dビット目を0にした数", pos, pos + n - 1); printbits(reset_n(x, pos, n)); putchar('\n');
printf("%dビット目~%dビット目を反転した数", pos, pos + n - 1); printbits(inverse_n(x, pos, n));putchar('\n');
return 0;
}
void printbits(unsigned x) {
int i;
for (i = (8 * sizeof(unsigned)) - 1; i >= 0; i--) {
if ((x >> i) & 1) {
putchar('1');
}
else {
putchar('0');
}
}
}
unsigned lrotate(unsigned x, int n) {
int bits = (8 * sizeof(unsigned));
return (n ? (x << n) | (x >> (bits - n)) : x);
}
unsigned set_n(unsigned x, int pos, int n) {
for (int i = pos; i <= pos + n - 1; i++) {
x = (x | lrotate(1U, i));
}
return x;
}
unsigned reset_n(unsigned x, int pos, int n) {
for (int i = pos; i <= pos + n - 1; i++) {
x = (x & ~lrotate(1U, i));
}
return x;
}
unsigned inverse_n(unsigned x, int pos, int n) {
for (int i = pos; i <= pos + n - 1; i++) {
x = (x ^ lrotate(1U, i));
}
return x;
}
int main() {
unsigned x;
int pos, n;
printf("整数を入力して下さい:"); scanf("%u", &x);
printf("何ビット目を変更しますか?:"); scanf("%d", &pos);
printf("そこから何ビット変更しますか?:"); scanf("%d", &n);
printf("元の数:"); printbits(x); putchar('\n');
printf("%dビット目~%dビット目を1にした数", pos, pos + n - 1); printbits(set_n(x, pos, n)); putchar('\n');
printf("%dビット目~%dビット目を0にした数", pos, pos + n - 1); printbits(reset_n(x, pos, n)); putchar('\n');
printf("%dビット目~%dビット目を反転した数", pos, pos + n - 1); printbits(inverse_n(x, pos, n));putchar('\n');
return 0;
}
演習 7-4
#include <stdio.h>
void printbits(unsigned x) {
int i;
for (i = (8 * sizeof(unsigned)) - 1; i >= 0; i--) {
if ((x >> i) & 1) {
putchar('1');
}
else {
putchar('0');
}
}
}
unsigned lrotate(unsigned x, int n) {
int bits = (8 * sizeof(unsigned));
return (n ? (x << n) | (x >> (bits - n)) : x);
}
unsigned set(unsigned x, int pos) {
return (x | lrotate(1U, pos));
}
unsigned reset(unsigned x, int pos) {
return (x & ~lrotate(1U, pos));
}
unsigned inverse(unsigned x, int pos) {
return (x ^ lrotate(1U, pos));
}
int main() {
unsigned x;
int n;
printf("整数を入力して下さい:"); scanf("%u", &x);
printf("何ビット目を変更しますか?:"); scanf("%d", &n);
printf("元の数:"); printbits(x); putchar('\n');
printf("%dビット目を1にした数", n); printbits(set(x, n)); putchar('\n');
printf("%dビット目を0にした数", n); printbits(reset(x, n)); putchar('\n');
printf("%dビット目を反転した数", n); printbits(inverse(x, n)); putchar('\n');
return 0;
}
void printbits(unsigned x) {
int i;
for (i = (8 * sizeof(unsigned)) - 1; i >= 0; i--) {
if ((x >> i) & 1) {
putchar('1');
}
else {
putchar('0');
}
}
}
unsigned lrotate(unsigned x, int n) {
int bits = (8 * sizeof(unsigned));
return (n ? (x << n) | (x >> (bits - n)) : x);
}
unsigned set(unsigned x, int pos) {
return (x | lrotate(1U, pos));
}
unsigned reset(unsigned x, int pos) {
return (x & ~lrotate(1U, pos));
}
unsigned inverse(unsigned x, int pos) {
return (x ^ lrotate(1U, pos));
}
int main() {
unsigned x;
int n;
printf("整数を入力して下さい:"); scanf("%u", &x);
printf("何ビット目を変更しますか?:"); scanf("%d", &n);
printf("元の数:"); printbits(x); putchar('\n');
printf("%dビット目を1にした数", n); printbits(set(x, n)); putchar('\n');
printf("%dビット目を0にした数", n); printbits(reset(x, n)); putchar('\n');
printf("%dビット目を反転した数", n); printbits(inverse(x, n)); putchar('\n');
return 0;
}
演習 7-3
#include <stdio.h>
void printbits(unsigned x) {
int i;
for (i = (8 * sizeof(unsigned)) - 1; i >= 0; i--) {
if ((x >> i) & 1) {
putchar('1');
}
else {
putchar('0');
}
}
}
unsigned rrotate(unsigned x, int n) {
int bits = (8 * sizeof(unsigned));
return (n ? (x >> n) | (x << (bits - n)) : x);
//追い出される予定のビットを手前にずらしてorを取る
}
unsigned lrotate(unsigned x, int n) {
int bits = (8 * sizeof(unsigned));
return (n ? (x << n) | (x >> (bits - n)) : x);
}
int main() {
unsigned x;
int n;
printf("整数を入力して下さい:"); scanf("%u", &x);
printf("回転させるビット数を入力してください:"); scanf("%d", &n);
printf("元の数:"); printbits(x); putchar('\n');
printf("右に%dビット回転した数:", n); printbits(rrotate(x, n)); putchar('\n');
printf("左に%dビット回転した数:", n); printbits(lrotate(x, n)); putchar('\n');
return 0;
}
void printbits(unsigned x) {
int i;
for (i = (8 * sizeof(unsigned)) - 1; i >= 0; i--) {
if ((x >> i) & 1) {
putchar('1');
}
else {
putchar('0');
}
}
}
unsigned rrotate(unsigned x, int n) {
int bits = (8 * sizeof(unsigned));
return (n ? (x >> n) | (x << (bits - n)) : x);
//追い出される予定のビットを手前にずらしてorを取る
}
unsigned lrotate(unsigned x, int n) {
int bits = (8 * sizeof(unsigned));
return (n ? (x << n) | (x >> (bits - n)) : x);
}
int main() {
unsigned x;
int n;
printf("整数を入力して下さい:"); scanf("%u", &x);
printf("回転させるビット数を入力してください:"); scanf("%d", &n);
printf("元の数:"); printbits(x); putchar('\n');
printf("右に%dビット回転した数:", n); printbits(rrotate(x, n)); putchar('\n');
printf("左に%dビット回転した数:", n); printbits(lrotate(x, n)); putchar('\n');
return 0;
}
演習 7-2
#include <stdio.h>
int main() {
int start, judge, shift;
printf("数を入力して下さい。:");
scanf("%d", &start);
do {
printf("右にビットシフト:1、左にビットシフト:2、終わる:3\n");
scanf("%d", &judge);
if (judge == 1) {
printf("何bit右にシフトしますか?:");
scanf("%d", &shift);
printf("右に%dビットシフトすると値は %d です。\n", shift, start >> shift);
}
else if (judge == 2) {
printf("何bit左にシフトしますか?:");
scanf("%d", &shift);
printf("左に%dビットシフトすると値は %d です。\n", shift, start << shift);
}
else {
break;
}
} while (1);
return 0;
}
int main() {
int start, judge, shift;
printf("数を入力して下さい。:");
scanf("%d", &start);
do {
printf("右にビットシフト:1、左にビットシフト:2、終わる:3\n");
scanf("%d", &judge);
if (judge == 1) {
printf("何bit右にシフトしますか?:");
scanf("%d", &shift);
printf("右に%dビットシフトすると値は %d です。\n", shift, start >> shift);
}
else if (judge == 2) {
printf("何bit左にシフトしますか?:");
scanf("%d", &shift);
printf("左に%dビットシフトすると値は %d です。\n", shift, start << shift);
}
else {
break;
}
} while (1);
return 0;
}
演習 7-1
#include <stdio.h>
#define n 3
int main(){
printf("sizeof 1 = %u\n", sizeof 1); //int型なので4
printf("sizeof+1 = %u\n", sizeof + 1); //int型なので4
printf("sizeof-1 = %u\n", sizeof - 1); //int型なので4
printf("sizeof(unsigned)-1 = %u\n", sizeof(unsigned)-1); //int型なので3
printf("sizeof(double)-1 = %u\n", sizeof(double)-1); //double型から1引くので7
printf("sizeof((double)-1) = %u\n", sizeof((double)-1)); //double型-1(int型)はdouble型なので8
printf("sizeof n+2 = %u\n", sizeof n+2); //int型に2加えるので6
printf("sizeof (n+2) = %u\n", sizeof (n+2)); //int型+int型はint型なので4
printf("sizeof (n+2.0) = %u\n", sizeof (n+2.0)); //int型+double型はdouble型なので8
return 0;
}
#define n 3
int main(){
printf("sizeof 1 = %u\n", sizeof 1); //int型なので4
printf("sizeof+1 = %u\n", sizeof + 1); //int型なので4
printf("sizeof-1 = %u\n", sizeof - 1); //int型なので4
printf("sizeof(unsigned)-1 = %u\n", sizeof(unsigned)-1); //int型なので3
printf("sizeof(double)-1 = %u\n", sizeof(double)-1); //double型から1引くので7
printf("sizeof((double)-1) = %u\n", sizeof((double)-1)); //double型-1(int型)はdouble型なので8
printf("sizeof n+2 = %u\n", sizeof n+2); //int型に2加えるので6
printf("sizeof (n+2) = %u\n", sizeof (n+2)); //int型+int型はint型なので4
printf("sizeof (n+2.0) = %u\n", sizeof (n+2.0)); //int型+double型はdouble型なので8
return 0;
}
登録:
投稿 (Atom)