数值与进制
aardio中可使用自定义进制表示整数,表示的有效整数范围在正负 (2**53 - 1) 之间,64位无符号整数请使用 math.size64 表示 )
常用进制表示法
var dec = 10; //普通十进制数值,即使在前面加上0前缀仍然表示10进制数
var hex = 0xA5; //0x前缀表示一个十六进制数
var num = -0; //字面值常量-0自动转换为0,但运算得到的-0其值不变
自定义进制表示法
自定义进制语法:
num = radix#number
如果一个数字包含#号,则#号前面是自定义进制(大于2小于36),#号后面是数值,10以上的数用a-z的大小写字母表示。
a = 2#010 //表示一个2进制数010例如:
c = 36#Z7 //表示一个36进制数Z7
io.open()
io.print( 2#10000000000000000 /*aardio可以直接表示2进制数,1后面16个0*/ );
io.print( 2#10000000000000000 >>> 16 ,"65536右移16位变成了1")
io.print( 2#1010_1100 ) //自定义进制的数值也可以使用下划线作为数值分隔符
io.print( 2#10000000000000000 /*aardio可以直接表示2进制数,1后面16个0*/ );
io.print( 2#10000000000000000 >>> 16 ,"65536右移16位变成了1")
io.print( 2#1010_1100 ) //自定义进制的数值也可以使用下划线作为数值分隔符
在字符串中使用数值与进制
在字符串中使用\转义符+数值表示字符(字符串必须置于单引号内)
str = '六进制字符 \x2A'; // \x前缀表示一个十六进制字符
str3 = '十进制字符 \65'; // \前缀表示一个十进制字符
参考:数据类型-字符串
格式化字符串函数中使用进制与数值
%b 二进制数参考: 格式化字符串
%x %X 大小写十六进制数
%o 八进制数
%d 十进制数
io.open(); //打开控制台窗口
io.print( string.format("%X",123) )
转换进制
io.open() var str = tostring(123,16) //转换为十六进制字符串 var num = tonumber(str,16) //将十六进制字符串转换为数值 io.print( "二进制",tostring( 123,2) , "八进制",tostring( 123,8) , "十六进制",tostring( 123,16) , "十进制",tostring( 123 ) );
将数值转换为字符串的tostring()函数,以及将字符串转换为数值的tonumber()函数,都可选使用第二个参数指定应用于转换的进制(2到36之间).