ホームページ >よくある問題 >Java で % は何を意味しますか

Java で % は何を意味しますか

青灯夜游
青灯夜游オリジナル
2023-03-06 16:48:4814514ブラウズ

Java では「%」は剰余を意味し、除算して剰余を求めることができる二項算術演算子です。構文は「オペランド 1 % オペランド 2」です。剰余演算子 "%" のオペランドは通常、正の整数、負の数、さらには浮動小数点数です。この演算に負の数が含まれる場合、結果は前の数値が正か負かによって異なります。

Java で % は何を意味しますか

#このチュートリアルの動作環境: Windows7 システム、Java8 バージョン、DELL G3 コンピューター。 Java の

% は、剰余 を意味します。これは、剰余演算を実装し、除算演算を実行して剰余を取得できる算術演算子です。

剰余演算子は % で、これは二項演算子です。そのオペランドは通常、正の整数、負の数値、さらには浮動小数点数です。この演算に負の数値が含まれる場合、結果の符号は数値が正か負かは、前の数値に依存します。

整数の場合、Java の剰余演算規則は次のとおりです。

a%b=a-(a/b)*b 
5%3=5-(5/3)*3=2 
5%-3=5-(5/-3)*-3=2 
-5%3=-5-(-5/3)*3=-2 
-5%-3=-5-(-5/-3)*-3=-2

オペランドに浮動小数点数がある場合、使用される規則は次のとおりです

a%b= a- (b*q)q=int(a/b)

5.2%3.1=5.2-1*3.1=2.1 
5.2%-3.1=5.2-(-1)*(-3.1)=2.1 
-5.2%3.1=-5.1-(-1)*3.1=-2.1 
-5.2%-3.1=-5.1-(-1)*(-3.1)=-2.1

拡張知識:

算術演算Java 演算子は主に数値データの算術演算を整理するために使用され、演算に含まれるさまざまなオペランドに応じて単項演算子と二項演算子に分類できます。

単項演算子

算術単項演算には、- と -- という 3 つがあります。具体的な手順については、表 1 を参照してください。

表 1 単項算術演算演算子名前説明例#- ##自己インクリメント最初に値を取得してから 1 を加算するか、最初に 1 を加算してから値を取得しますa または a1 ずつデクリメント表 1 で、-a は a の反転演算であり、a または a-- は式の演算が完了した後に a に 1 を加算または減算することを示します。 a または --a は、まず a に 1 を加算または減算してから、式の演算を実行します。
int a = 12;
System.out.println(-a);
int b = a++;
System.out.println(b);
b = ++a;
System.out.println(b);
上記のコードの 2 行目は -a で、変数 a を反転し、結果の出力は -12 になります。コードの 4 行目では、まず a を b 変数に代入し、次に 1 を加算します。つまり、最初に値を代入し、次に を代入するため、出力結果は 12 になります。コードの 6 行目では、a に 1 を加算し、次に変数 b に a を代入します。つまり、値を次々に代入するため、出力結果は 14 になります。
否定記号 # 否定演算 #b=-a
#- -
最初に値を取得してから 1 を減算するか、最初に 1 を減算してから値を取得します a-- または --a

出力結果は以下のようになります。

二項演算子Java で % は何を意味しますか

Java言語の算術演算子 関数of は四則演算を行うことで、よく使う加算( )、減算(-)、乗算(*)、除算(\)に加え、剰余演算(%)もあります。加算 ( )、減算 (-)、乗算 (*)、除算 (\) は、私たちが普段触れる数学演算と同じ意味を持ちます。具体的な手順については、表 2 を参照してください。

表 2 バイナリ算術演算

名前Adda マイナス b の差を求めますa と b/ 割り算#%Remainder
演算子
説明
a と b の合計を求めます。文字列連結操作を実行するために String 型にも使用できます。 a b - minus
a - b Multiply
a の積を求めます * b
a を b
a / b で割った商を求めます
a を b で割ったときの余りを求めます
a % b

算术运算符都是双目运算符,即连接两个操作数的运算符。优先级上,*、/、% 具有相同运算级别,并高于 +、-(+、- 具有相同级别)。例如:

int a = 4, b = 2, c = 3;
int d = a * (b + c) % c;

这种运算规则与数学运算中的规则是相同的。首先计算赋值符号(=)右边配对的括号内的值,其次按从左向右的结合方向计算乘法,最后做求余运算,表达式的结果为 2, 然后把 2 赋值给 d。

例如:

  • int x=2,y=1;表达式 y/x 的结果是 0。

  • float x=2.0f; int y=1; 表达式 y/x 的结果是 0.5。

在 ① 中整型变量 x 和 y 相除,其结果仍为整型数据 0;在 ② 中由于两个不同类型的数据进行运算,此时首先要进行类型转换,会把 int 型的 y 转换成与 x 一样的 float 型,然后相除,最终结果为 float 类型的数字 0.5。

【例1】编写一个程序,输出不同类型的两个数,执行相加、相减、相乘、相除和求余后输入结果。

public static void main(String[] args) {
    float f1 = 9 % 4;// 保存取余后浮点类型的结果
    double da = 9 + 4.5; // 双精度加法
    double db = 9 - 3.0; // 双精度减法
    double dc = 9 * 2.5; // 双精度乘法
    double dd = 9 / 3.0; // 双精度除法
    double de = 9 % 4; // 双精度取余
    System.out.println("整数的算术运算"); // 整数的加、减、乘、除和取余
    System.out.printf("9+4=%d \n", 9 + 4);
    System.out.printf("9-4=%d \n", 9 - 4);
    System.out.printf("9*4=%d \n", 9 * 4);
    System.out.printf("9/4=%d \n", 9 / 4);
    System.out.printf("9%%4=%d \n", 9 % 4);
    System.out.println("\n浮点数的算术运算"); // 浮点数的加、减、乘、除和取余
    System.out.printf("9+4.5f=%f \n", 9 + 4.5f);
    System.out.printf("9-3.0f=%f \n", 9 - 3.0f);
    System.out.printf("9*2.5f=%f \n", 9 * 2.5f);
    System.out.printf("9/3.0f=%f \n", 9 / 3.0f);
    System.out.printf("9%%4=%f \n", f1);
    System.out.println("\n双精度数的算术运算"); // 双精度数的加、减、乘、除和取余
    System.out.printf("9+4.5=%4.16f \n", da);
    System.out.printf("9-3.0=%4.16f \n", db);
    System.out.printf("9*2.5=%4.16f \n", dc);
    System.out.printf("9/3.0=%4.16f \n", dd);
    System.out.printf("9%%4=%4.16f \n", de);
    System.out.println("\n字符的算术运算"); // 对字符的加法和减法
    System.out.printf("'A'+32=%d \n", 'A' + 32);
    System.out.printf("'A'+32=%c \n", 'A' + 32);
    System.out.printf("'a'-'B'=%d \n", 'a' - 'B');
}

保存文件并运行,输出的结果如下所示。

Java で % は何を意味しますか

本示例中使用了 4 种类型来执行算术运算。其中,整数类型的结果最容易理解,浮点型和双精度型返回的结果都带有小数,字符型将会把字符转换为 ASCII 码再运算。

从输出结果中可以看到,整数之间的运算结果只保留整数部分,浮点型运算时保留 6 位小数部分,双精度运算时则保留 16 位小数部分。

注意:Java 语言算术运算符的优先级是先乘除后加减。例如在表达式“a-b*c”中,b 的左侧为减号,右侧为乘号,而乘号优先级高于减号,因此该表达式可以转换为“a-(b*c)”。

如果在一个表达式中的多个算术运算符的优先级别相同,例如“a-b+c”,此时将按照运算符的结合方向决定顺序。算术运算符的结合方向都是“从左至右”,即先左后右。因此 b 先与减号结合,执行“a-b”的运算,再执行加 c 的运算。

更多编程相关知识,请访问:编程教学!!

以上がJava で % は何を意味しますかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。