V语言大数BIGNUM介绍

  V语言中文网  |   1936 |    2020-02-28 19:43:50

在我们平时开发遇到需要数字的场景中,大多数的情况i64或者u64这两个类型已经可以覆盖了,但是还有一些意外情况是需要更大更大的数字类型,这时候就需要BIGNUM类型了。

bignum在V语言中以全局模块(global module)的形式存在于源码vlib中,如需使用bignum模块,只要简单在文件中引入即可:

import bignum

V语言中bignum的类型定义为Number,在源码中可以看到该结构体,下面介绍下bignum模块中主要的一些方法。

  1. 初始化函数new_bignum()

pub fn new_bignum() Number

该函数返回一个空的Number对象

  1. int类型实例化

pub fn from_int(i int) Number

  1. u64类型实例化

pub fn from_u64(u u64) Number

  1. string类型实例化

pub fn from_string(s string) Number

  1. 转换为int类型

pub fn (n Number) int() int

  1. 转为16进制字符串

pub fn (n Number) hexstr() string

  1. 计算商和余数

pub fn divmod(a &Number,b &Number,c &Number) Number

这个函数的参数是三个Number对象的指针,功能是求ab的商,c为接收商数值,返回值是余数。下面是简单的测试用例:

import bignum

fn main(){
  a:=bignum.from_int(5)
  b:=bignum.from_int(3)
  c:=bignum.new_bignum()
  d:=bignum.divmod(&a,&b,&c)
  println(a.int())
  println(b.int())
  println(c.int())
  println(d.int())
}

编译运行结果如下:

5
3
1
2
  1. 判断两个值是否相等

pub fn cmp(a Number,b Number) int

判断两个值是否相等,相等的话返回0,不相等返回1

  1. 检测是否为0

pub fn (n Number) is_zero() bool

  1. 自增

pub fn (n mut Number) inc()

  1. 自减

pub fn (n mut Number) dec()

  1. 幂函数

pub fn pow(a Number,b Number) Number

  1. 平方根

pub fn (n Number) isqrt() Number

  1. and运算

pub fn b_and(a Number, b Number) Number

  1. or运算

pub fn b_or(a Number, b Number) Number

  1. xor运算

pub fn b_xor(a Number, b Number) Number

  1. 左移

pub fn (a Number) lshift(nbits int) Number

  1. 右移

pub fn (a Number) rshift(nbits int) Number

  1. 克隆

pub fn (a Number) clone() Number

  1. 阶乘运算

pub fn factorial(n Number) Number

以上内容针对V语言0.1.24版本,如有疏漏,还请指正。


登陆后可发表评论


热门评论

暂无评论


最新评论

上官带刀 2022-03-18 12:43:53

官方注册网址www.xbs6789.com QQ 1463448473 微 w403572169 百胜集团公司位于缅甸掸邦特区果敢民族自治区,又称老街市。老街市拥有历史悠久的文化,是缅甸靠近中国较为发达的城市之一,与中国的云南省临沧市镇康县南伞镇为邻,主体民族为汉族,通用云南汉语方言,主要流通货币为人民币,固定电话使用中国临沧区号,移动电话亦使用临沧中国移动、联通信号,大量的华人华侨常年在此投资经商。 百胜集团公司成立于一九九九年,占地面积共二万二千三百九十二点五平方米,分别由百胜国际酒店、兴隆宾馆、百胜商贸城、百胜娱乐总汇、百胜广场(娱乐中心)五大部分组成,总投资一点二个亿人民币。二零零六年六月,百胜集团公司又投资增建百胜国际酒店、百胜广场及附属职工宿舍和商贸城。 百胜集团公司热忱欢迎五湖四海的宾客来此旅游观光,体验缅甸的异国风情,这里有缅甸闻名世界的翡翠玉石珠宝、佛塔寺庙、柚木、缅甸各民族特色美味佳肴及泼水节、点灯节等民俗节日,百胜集团公司将竭尽全力为客户提供好的服务,让客户有一个难忘的旅游体验。

[0]  回复

上官带刀 2022-03-18 12:43:45

【新百胜国际娱乐公司】是由缅甸果.敢政府大型企业集团投资创建,方便广大的玩家有个网上安全娱乐的平台而打造的正规真人实体现场平台。开创了缅甸果敢娱乐业网络零起点,以超前的经营理念和现代化企业管理,全球娱乐首选!公司不仅拥有市场上最多样化的娱乐,同时为广大客户提供、紧张刺激、公平公正的娱乐平台。 网络安全最为玩家注重,公司针对网络安全的问题,成立网络安全维护中心,彻底为客户的网络安全打消了困惑之忧,获得缅甸国家认证,证明网站公平/公正性,所有会员资料均经过加密,保障玩家所有隐私!官网 {www.xbs6789.com} 微 w403572169 QQ1463448473

[0]  回复

上官带刀 2022-03-18 12:43:38

咨询:微 w403572169 QQ:1956926626亚洲最佳真人视讯娱乐百家楽龙虎实体正规平台大额无忧??缅甸全网真人视讯娱乐平台公平公正?新百胜国际文娱公司是由缅甸果敢政府大型企业集团投资创立,便当广阔的玩家有个网上平安文娱的平台而打造的正轨真人实表现场平台。创始了缅甸果敢文娱业网络零起点,以超前的运营理念和现代化企业管理,全球文娱首选!公司不只具有市场上最多样化的文娱,同时为广阔客户提供、慌张刺激、公平公正的文娱平台。网络平安最为玩家注重,公司针对网络平安的问题,成立网络平安维护中心,彻底为客户的网络平安消除了困惑之忧,取得缅甸国度认证,证明网站公平/公正性,一切会员材料均经过加密,保证玩家一切隐私!? 诚信为本:全网最高信誉,在这里文娱开端!作为专业的网上正轨平台,公司承诺,为每一位客户提供最平安、最公平公正的文娱游戏,以及全方效劳客户至上!更有高质量、高质量的真人游戏、网投和现场同步,游戏的优点—不须耗时装置;游戏结果公平、公正、公开!官方注册网址:www.xbs6789.com网投负责人:qq 1463448473 微 w403572169

[0]  回复