电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

聊聊Java BigInteger里面的mod和remainder的區(qū)別

瀏覽:4日期:2023-12-06 16:11:34
目錄BigInteger里的mod和remainder區(qū)別mod是模運(yùn)算,remainder是求余運(yùn)算BigInteger類的一些使用心得下面總結(jié)一下以后方便找1.給大數(shù)賦值2.把int型轉(zhuǎn)化為string型3.把兩個字符串拼接BigInteger里的mod和remainder區(qū)別

下面直接上圖吧,稍后解釋關(guān)于mod和remainder以及負(fù)數(shù)求余求模的區(qū)別。

聊聊Java BigInteger里面的mod和remainder的區(qū)別

mod是模運(yùn)算,remainder是求余運(yùn)算

如果被除數(shù)是正整數(shù),mod和remainder的結(jié)果沒區(qū)別。mod運(yùn)算除數(shù)只能為正數(shù)。

取模運(yùn)算(“Modulo Operation”)和取余運(yùn)算(“Complementation ”)兩個概念有重疊的部分但又不完全一致。主要的區(qū)別在于對負(fù)整數(shù)進(jìn)行除法運(yùn)算時操作不同。取模主要是用于計算機(jī)術(shù)語中。取余則更多是數(shù)學(xué)概念。

假設(shè)有式子a ÷ b = c ··· r

當(dāng)a和b符號一致時的情況:a,b均大于0時,求模運(yùn)算和求余運(yùn)算所得的c的值一致,r >= 0。a,b均小于0時,只能進(jìn)行求余運(yùn)算,因為求模運(yùn)算除數(shù)b必須為正,r也是大于等于0。

當(dāng)a和b符號不一致時,c不一樣,r也不一樣。

求余運(yùn)算結(jié)果,r不為0時, r 的符號和a一致。即余數(shù)符號和被除數(shù)符號必須相同。 求模運(yùn)算結(jié)果,r不為0時,r 的符號和b一致,而因為求模運(yùn)算時,b必須大于0,所以r一定大于等于0,即模運(yùn)算的結(jié)果一定是非負(fù)數(shù)。

我們來從java的BigInteger源碼來看看實現(xiàn),當(dāng)b小于等于0時會出現(xiàn)什么情況,假設(shè)這里r = a.mod(b),那么b必須為正數(shù),否則報異常

Exception in thread 'main' java.lang.ArithmeticException: BigInteger: modulus not positive

來看mod源碼:

public BigInteger mod(BigInteger m) {// signum是此BigInteger的符號:-1表示負(fù)數(shù),0表示零,或1表示正數(shù)。// 請注意,BigInteger零必須具有0的符號。這對于確保每個BigInteger值只有一個表示是必要的。if (m.signum <= 0) throw new ArithmeticException('BigInteger: modulus not positive'); BigInteger result = this.remainder(m);return (result.signum >= 0 ? result : result.add(m));// 可以看出mod和remainder的區(qū)別就在于,mod的模必須為正,否則異常,并且取余的值小于0點話還要加上模數(shù)m }

比如 -14 ÷ 3 = -4 ··· -2(余數(shù)符號和被除數(shù)符號必須相同

余數(shù)就是-2,這里如果是remainder取余運(yùn)算,-14 remainder 3 = -2,結(jié)果是-2

如果是mod模運(yùn)算,在remainder基礎(chǔ)上判斷正負(fù),這里-2是負(fù)數(shù),加上模數(shù)(可認(rèn)為是除法的除數(shù)),這里加上3,mod模運(yùn)算結(jié)果就是1,-14 mod 3 = 1

-10 ÷ 3 = -3 ··· -1

余數(shù)就是-1,這里如果是remainder取余運(yùn)算,-10 remainder 3 = -1,結(jié)果是-1

如果是mod模運(yùn)算,在remainder基礎(chǔ)上判斷正負(fù),這里-1是負(fù)數(shù),加上模數(shù)(可認(rèn)為是除法的除數(shù)),這里加上3,mod模運(yùn)算結(jié)果就是2,-10 mod 3 = 2

7 ÷ -3 = -2 ··· 1

余數(shù)是1,除數(shù)是負(fù)數(shù),這里只能取模運(yùn)算remiander 7 remainder -3 = 1,結(jié)果是1。但是這里余數(shù)居然大于除數(shù)了!!!!

所以可以這么說,我們小學(xué)所學(xué)的余數(shù)一定小于除數(shù)這個結(jié)論是針對除數(shù)為正數(shù)而言。并且由前兩個例子也可以看出,取模運(yùn)算的值也一定小于除數(shù),前提條件是除數(shù)為正才能取模。

如果被除數(shù)是0,不管是取模還是取余結(jié)果都是0。

0%-5=0

0mod3=0

0remainder-3=0

......

如果不是大整數(shù),只是普通的int型,比如System.out.println(5 % -3);

打印出來是2

所以java中,%是求余運(yùn)算,而不是取模運(yùn)算。

另外各個環(huán)境下%運(yùn)算符的含義不同,比如c/c++,java 為取余,而python則為取模。

BigInteger類的一些使用心得

這幾天做信息安全作業(yè)的rsa算法,用到了很多大數(shù)的方法。

下面總結(jié)一下以后方便找1.給大數(shù)賦值

BigInteger p = new BigInteger('10669721913248017310');

或者,X3是string或者int都行。

BigInteger cx= new BigInteger('' + X3) ; 2.把int型轉(zhuǎn)化為string型

int j=123;String X1=String.valueOf(j);3.把兩個字符串拼接

String X1=1234;String X2=1545;String X3=X2+X1;

之后有的話繼續(xù)更新。以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 十二星座查询(性格特点分析、星座运势解读) - 玄米星座网 | 手机存放柜,超市储物柜,电子储物柜,自动寄存柜,行李寄存柜,自动存包柜,条码存包柜-上海天琪实业有限公司 | ◆大型吹塑加工|吹塑加工|吹塑代加工|吹塑加工厂|吹塑设备|滚塑加工|滚塑代加工-莱力奇塑业有限公司 | 除湿机|工业除湿机|抽湿器|大型地下室车间仓库吊顶防爆除湿机|抽湿烘干房|新风除湿机|调温/降温除湿机|恒温恒湿机|加湿机-杭州川田电器有限公司 | 福州时代广告制作装饰有限公司-福州广告公司广告牌制作,福州展厅文化墙广告设计, | 致胜管家软件服务【在线免费体验】 | 烘箱-工业烘箱-工业电炉-实验室干燥箱 - 苏州华洁烘箱制造有限公司 | loft装修,上海嘉定酒店式公寓装修公司—曼城装饰 | 污水处理设备,一体化泵站,一体化净水设备-「梦之洁环保设备厂家」 | 玻璃瓶厂家_酱菜瓶厂家_饮料瓶厂家_酒瓶厂家_玻璃杯厂家_徐州东明玻璃制品有限公司 | 上海新光明泵业制造有限公司-电动隔膜泵,气动隔膜泵,卧式|立式离心泵厂家 | 广州展览制作|展台制作工厂|展览设计制作|展览展示制作|搭建制作公司 | 优考试_免费在线考试系统_培训考试系统_题库系统_组卷答题系统_匡优考试 | 油罐车_加油机_加油卷盘_加油机卷盘_罐车人孔盖_各类球阀_海底阀等车用配件厂家-湖北华特专用设备有限公司 | 高通量组织研磨仪-多样品组织研磨仪-全自动组织研磨仪-研磨者科技(广州)有限公司 | 造价工程师网,考试时间查询,报名入口信息-网站首页 | 乐泰胶水_loctite_乐泰胶_汉高乐泰授权(中国)总代理-鑫华良供应链 | 电动垃圾车,垃圾清运车-江苏速利达机车有限公司 | 工业淬火油烟净化器,北京油烟净化器厂家,热处理油烟净化器-北京众鑫百科 | 耐酸碱泵-自吸耐酸碱泵型号「品牌厂家」立式耐酸碱泵价格-昆山国宝过滤机有限公司首页 | 【德信自动化】点胶机_全自动点胶机_自动点胶机厂家_塑料热压机_自动螺丝机-深圳市德信自动化设备有限公司 | 深圳美安可自动化设备有限公司,喷码机,定制喷码机,二维码喷码机,深圳喷码机,纸箱喷码机,东莞喷码机 UV喷码机,日期喷码机,鸡蛋喷码机,管芯喷码机,管内壁喷码机,喷码机厂家 | 河北凯普威医疗器材有限公司,高档轮椅系列,推车系列,座厕椅系列,协步椅系列,拐扙系列,卫浴系列 | 泥沙分离_泥沙分离设备_泥砂分离机_洛阳隆中重工机械有限公司 | 大米加工设备|大米加工机械|碾米成套设备|大米加工成套设备-河南成立粮油机械有限公司 | 窖井盖锯圆机_锯圆机金刚石锯片-无锡茂达金刚石有限公司 | 基业箱_环网柜_配电柜厂家_开关柜厂家_开关断路器-东莞基业电气设备有限公司 | 机床主轴维修|刀塔维修|C轴维修-常州翔高精密机械有限公司 | 今日热点_实时热点_奇闻异事_趣闻趣事_灵异事件 - 奇闻事件 | 解放卡车|出口|济南重汽|报价大全|山东三维商贸有限公司 | 宽带办理,电信宽带,移动宽带,联通宽带,电信宽带办理,移动宽带办理,联通宽带办理 | 12cr1mov无缝钢管切割-15crmog无缝钢管切割-40cr无缝钢管切割-42crmo无缝钢管切割-Q345B无缝钢管切割-45#无缝钢管切割 - 聊城宽达钢管有限公司 | 桁架机器人_桁架机械手_上下料机械手_数控车床机械手-苏州清智科技装备制造有限公司 | 污水处理设备,一体化泵站,一体化净水设备-「梦之洁环保设备厂家」 | 棉柔巾代加工_洗脸巾oem_一次性毛巾_浴巾生产厂家-杭州禾壹卫品科技有限公司 | 舞台木地板厂家_体育运动木地板_室内篮球馆木地板_实木运动地板厂家_欧氏篮球地板推荐 | 踏板力计,制动仪,非接触多功能速度仪,逆反射系数测试仪-创宇 | 金联宇电缆总代理-金联宇集团-广东金联宇电缆实业有限公司 | H型钢切割机,相贯线切割机,数控钻床,数控平面钻,钢结构设备,槽钢切割机,角钢切割机,翻转机,拼焊矫一体机 | 沙盘模型公司_沙盘模型制作公司_建筑模型公司_工业机械模型制作厂家 | 苏州伊诺尔拆除公司_专业酒店厂房拆除_商场学校拆除_办公楼房屋拆除_家工装拆除拆旧 |