【转】Typescript: how to convert number to an int8, int16, int32, uint8, uint16, or uint32
转载:Typescript: how to convert number to an int8, int16, int32, uint8, uint16, or uint32
export class CONVERT { static NumberToUint32(x:number):number { return x >>> 0; } static NumberToUint16(x:number):number { return this.NumberToUint32(x) & 0xFFFF; } static NumberToUint8(x:number):number { return this.NumberToUint32(x) & 0xFF; } static NumberToInt32(x:number): number { return x >> 0; } static NumberToInt16(x:number): number { let r: number = 0; let n = this.NumberToUint16(x); if(n & 0x8000) r = 0xFFFF8000|(n&0x7FFF); else r = n; return(r); } static NumberToInt8(x:number): number { let r: number = 0; let n = this.NumberToUint8(x); if(n & 0x80) r = 0xFFFFFF80|(n&0x7F); else r = n; return(r); } static StrToNumber(val: string, defaultVal:number = 0): number { let result:number = defaultVal; if(val == null) return result; if(val.length == 0) return result; val = val.trim(); if(val.length == 0) return(result); let sign:number = 1; // // . obtain sign from string, and place result in "sign" local varible. The Sign naturally defaults to positive // 1 for positive, -1 for negative. // . remove sign character from val. // Note, before the function returns, the result is multiplied by the sign local variable to reflect the sign. // . error check for multiple sign characters // . error check to make sure sign character is at the head or tail of the string // { let positiveSignIndex = val.indexOf('+'); let negativeSignIndex = val.indexOf('-'); let nTailIndex = val.length-1; // // make sure both negative and positive signs are not in the string // if( (positiveSignIndex != -1) && (negativeSignIndex != -1) ) return result; // // handle postive sign // if (positiveSignIndex != -1) { // // make sure there is only one sign character // if( (positiveSignIndex != val.lastIndexOf('+')) ) return result; // // make sure the sign is at the head or tail // if( (positiveSignIndex > 0) && (positiveSignIndex < nTailIndex ) ) return result; // // remove sign from string // val = val.replace("+","").trim(); } // // handle negative sign // if (negativeSignIndex != -1) { // // make sure there is only one sign character // if( (negativeSignIndex != val.lastIndexOf('-')) ) return result; // // make sure the sign is at the head or tail // if( (negativeSignIndex > 0) && (negativeSignIndex < nTailIndex ) ) return result; // // remove sign from string // val = val.replace("-","").trim(); sign = -1; } // // make sure text length is greater than 0 // if(val.length == 0) return result; } // // convert string to a number // var r = +(<any>val); // // apply sign if no errors // if( (r != null) && (!isNaN(r)) ) { result = r*sign; } return(result); } }
作者:眾尋
出处:https://www.cnblogs.com/ZXdeveloper/p/16891924.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
分类:
Javascript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
2017-11-15 WPF 简易的喷泉效果
2016-11-15 Emoji选项列表
2014-11-15 传智播客--XAML布局--连连看界面(小白内容)