2017-04-23 9 views
-2

所与の問題は、適切な数にのint d numの形式で表さとして格納され、0から10 000の範囲の全体の正の整数に変換するCプログラム「スニペット」を書き込むために尋ねますASCII文字を5文字の配列で指定します。 "9" = ASCII 57(10)= 39(H)。文字配列はBCDcharです。CプログラムINT

私はスニペットの作成を開始しましたが、どうしたらよいかわかりません続けています。事前にありがとうございます。(を与えられた質問は本当に混乱して、私はかなりそれが本当に望んでいるものを理解していない理由です。

#include <stdio.h> 

int main(void) { 

int range = 0; 
int dnum = 0; 
char BCDchar[5]; //ASCII 

if(range >= 0 && range <= 10000) { 


    } 
} 
+0

どのように変換したいのですか?あなたのintは文字にどのようにマップされますか? –

+1

整数を文字列表現に変換したいのですか?それには標準的なライブラリ関数があります! – InternetAussie

答えて

0

ASCIIは情報交換用米国標準コードの略であります各文字にはASCIIテーブルのコードがあり、指定されたintをそのASCII表現に変換するかどうか尋ねられます。 thisテーブルをチェックして番号9を探します。その小数点コードは57で、Hexで39を表し、ヒントがあなたに伝えようとしているものです。 に最大長5を格納する必要があります。この例で扱える最高の数値はASCII形式の49 48 48 48 48を意味する10000であるため、thisを使用してソリューションを検証できます。

最後に、変換に4バイトしか必要ない場合は、最後のバイトに0を入れます。BCDchar

これは、あなたが質問を理解するのを手助けしようとしているだけです。これをCで実装するのはかなり簡単です。

0

文字列「xxxx \ 0」に変換する番号xxxxがあります。 数字の数字を配列に格納します。

int arr[5]; 
int n=dnum; //assuming dnum is the number you want to convert 
int i,no_of_digits; 
for (i=0; i<5; i++){ 
    arr[i]=n%10; 
    n=n/10; 
    if(num==0){ 
     no_of_digits=i+1; 
} 
//now convert each digit to the respective ascii value 
char *str=(char*) malloc((no_of_digits+1)*sizeof(char)); 
str[no_of_digits]='\0'; 
for (i=0; i<no_of_digits; i++){ 
    str[no_of_digits-i+1]=(char) arr[i]+48; 
} 
//str is the required string