0

だから、私は複数の基数(16進数までのバイナリとその間のすべてを意味する)で算術演算を行うためのプログラムを作成しています.Javaにはまだ比較的慣れていないので、理解するのに少し苦労しています.私が望む比較を行う方法を正確に説明します。私がやりたいのは、文字列の最後の文字を取り、それを特定の整数と比較することです。たとえば、数字が 9.54126 だとします。さて、プログラムのこの時点では、この数字は実際には文字列なので、末尾の「6」を文字として見ています。その 6 が切り上げられるほど高いかどうかを確認したいと思います。したがって、基本的には、ASCII 値が現在の基数の半分よりも大きいかどうかを調べています (基数 15 または 16 で答えを表示する場合は、切り上げて 8 などにします)。プログラムの前半で、現在選択されている基数に基づいて丸められる値を見つけ、整数変数 roundable に保存しました。ここで、整数の ASCII 値を文字として比較する方法と、最後の位置の文字を比較する方法を知る必要があります。コード例は次のとおりです。

 //roundable is an integer here but I want it to be the character representation
 //of the number so I can compare their ASCII values                                                        

if(convertedString.charAt(lastSpot)) >= roundable){
    //round here
} else {
    //don't round
}

誰かがこれを達成する方法を教えてもらえますか? ありがとうございました!

4

2 に答える 2

0

convertString に からの文字のみが含まれていると仮定すると、'0'-'9'簡単に実行できます。

lastSpot = convertedString.length() - 1;
roundable = base/2;
if((convertedString.charAt(lastSpot) - '0') >= roundable){
    //round here
} else {
    //don't round
}

'0'is30(48)および for '9'isの 16 進値 (10 進数) 39(57)

于 2013-10-21T04:14:35.757 に答える
0

これを試して:

int base;
String number;

boolean roundUp = number.charAt(number.length() - 1) - '0' > base / 2;
于 2013-10-21T04:39:07.763 に答える