C/C++言語 char型を用いて演算
C/C++言語でchar型を用いた演算
チップ抵抗を求める際に使える. 例えば E-96系列で66Aは475Ωで, 51Bは3.32kΩ, 45Cは28.7kΩとなる. これを求めるプログラムにおいて, char型による四則演算を利用すれば処理も楽になる.
サンプルプログラム1
#include <iostream> //標準入出力関数を使うときに必要なヘッダー
#include <cmath> //数学関数を使うときに必要なヘッダー
using namespace std;
double round(double x, double n);
int main(void){
int num;
double ans;
char cNum[3];
cout << "抵抗表記を入力してください :";
cin >> cNum; //例 66A
num = ((int)(cNum[0] - '0') * 10 + (int)(cNum[1] - '0')); //数値に変換
cout << num << endl;
ans = round(pow(pow(10.0, num-1), 1.0/96.0), 3) * 100 * pow(10.0, (int)(cNum[2] - 'A')); //抵抗値の計算
cout << ans << "\n";
return 0;
}
double round(double x, double n){
int temp = x * pow(10.0, n); //入力した値を10^n倍する
if((temp%10) >= 5){ //1の位の余りが5以上の場合
temp = temp + (10 - temp%10); //10から1の位の余りを引いて、値に足す
return (double)temp * pow(10.0, -n); //計算結果を返す
}else{ //1の位の余りが5未満の場合
temp = temp - temp%10; //1の位の余りを引く
return (double)temp * pow(10.0, -n); //計算結果を返す
}
}
char型は1文字分のデータを格納できる. 例えばAは10進数アスキーコードで65. つまり, 変数cNum[2]にAを代入して, 数値として'A'を引く計算を行うと0となる. また, cNum[2]='D'とした場合, cNum[2] - 'A' = 3 となる.
参考
なし
※間違ってたらすみません。
わかった時点で修正します。
コメント
コメントを投稿