aardio 数值默认存储为 64 位浮点数,可表示的有效整数范围在正负 2**53 - 1之间。
在 原生类型 等需要转换为整数时使用银行家舍入法取整,有效转换的上下限为为正负 2**52。超出范围的值仅具存储作用(可用 string.format 的 %d 格式码转为字符串)。
使用 按位操作符 进行运算符时转换为 32 位整数,使用银行家舍入法取整。
aardio 在位运算或原生类型等需要转换为整数
aardio 也可以使用 math.size64 对象表示 64 位无符号整数。
var hex = 0xA5; //0x 前缀表示一个十六进制数
var dec = 10; //普通十进制数值,即使在前面加上 0 前缀仍然表示 10 进制数
var num1 = 10.1; //小数
var num2= 6e+20; //科学计数法
var num3 = -10; //负数
var num4 = -0; //字面值常量-0自动转换为0,但运算得到的 -0 可以保持其值。
var num5 = 123_456; //数值中可以添加单个下划线作为分隔符(不能使用连续多个下划线,解析字符串为数值是不支持分隔符)
自定义进制语法:
var num = radix#number
如果一个数值包含 # 号,则 # 号前面是自定义进制(大于等于 2 且小于 36 ),# 号后面是数值,10 以上的数用 a-z 范围的大小写字母表示。
示例:
var a = 2#010 //表示一个2进制数010
var c = 36#Z7 //表示一个36进制数Z7
import console;
console.log( 2#10000000000000000 /*aardio可以直接表示2进制数,1后面16个0*/ );
console.log( 2#10000000000000000 >>> 16 ,"65536右移16位变成了1")
console.log( 2#1010_1100 ) //自定义进制的数值也可以使用下划线作为数值分隔符
console.pause();
在单引号包含的字符串中使用 \ 转义符+数值表示字符。
var str = '六进制字符 \x2A'; // \x 前缀表示一个十六进制字符
var str3 = '十进制字符 \65'; // \ 前缀表示一个十进制字符
参考:
string.format 函数支持以下与进制有关的格式选项
%b 格式化为二进制数%x %X 格式化为小写或大写十六进制数%o 格式化为八进制数%d 格式化为十进制数示例:
import console;
console.logPause( string.format("%X",123) )
参考: 格式化字符串
import console;
var str = tostring(123,16) //转换为十六进制字符串
var num = tonumber(str,16) //将十六进制字符串转换为数值
console.logPause(
"二进制",tostring( 123,2) ,
"八进制",tostring( 123,8) ,
"十六进制",tostring( 123,16) ,
"十进制",tostring( 123 )
);
将数值转换为字符串的 tostring() 函数,以及将字符串转换为数值的 tonumber() 函数,都可选使用第二个参数指定应用于转换的进制(2到36之间).