16进制字符串 swift_ios swift 16进制字符串转16进制整数 - CSDN
  • 直接上代码,都是很简单的进制转换算法 final class Conversion { // MARK: - 十进制转二进制 class func decTobin(number:Int) -> String { var num = number var str = "" while num > 0 {...

    直接上代码,都是很简单的进制转换算法

     

    final class Conversion {
        
        // MARK: - 十进制转二进制
        class func decTobin(number:Int) -> String {
            var num = number
            var str = ""
            while num > 0 {
                str = "\(num % 2)" + str
                num /= 2
            }
            return str
        }
        
        // MARK: - 二进制转十进制
        class func binTodec(number num: String) -> Int {
            var sum: Int = 0
            for c in num.characters {
                let str = String(c)
                sum = sum * 2 + Int(str)!
            }
            return sum
        }
        
        // MARK: - 十进制转十六进制
        class func decTohex(number:Int) -> String {
            return String(format: "%0X", number)
        }
        
        // MARK: - 十六进制转十进制
        class func hexTodec(number num:String) -> Int {
            let str = num.uppercased()
            var sum = 0
            for i in str.utf8 {
                sum = sum * 16 + Int(i) - 48 // 0-9 从48开始
                if i >= 65 {                 // A-Z 从65开始,但有初始值10,所以应该是减去55
                    sum -= 7
                }
            }
            return sum
        }
    }

     

     

     

    其实系统自带了进制转换的算法

     

    print(Conversion.decTobin(number: 4))
    print(Conversion.binTodec(number: "100"))
    print(Conversion.decTohex(number: 16))
    print(Conversion.hexTodec(number: "10"))
    //系统自带
    print(String(16, radix: 16))
    print(String(16, radix: 8))
    print(String(16, radix: 2))
    print(String(16, radix: 10))

     

     

     

     

     

     

     

    展开全文
  • swift 字符串String转Int 16进制字符串String转Int var hexi:UInt = UInt(hexS, radix: 16) let n = 14 var st = String(format:"%02X", n) st += " is the hexadecimal representation of \(n)" print(st...

    swift  字符串String转Int   16进制字符串String转Int 

     

    var  hexi:UInt = UInt(hexS, radix: 16)

     

     

     

    let n = 14
    var st = String(format:"%02X", n)
    st += " is the hexadecimal representation of \(n)"
    print(st)

     

    
     
    展开全文
  • * 16进制字符串 和 文本字符串 相互转换的工具类 */ public class HexStringUtil { /** 16进制能用到的所有字符 */ private static String hexCharsStr = "0123456789ABCDEF"; /** 16进制能用到的所有...
    /**
     * 16进制字符串 和 文本字符串 相互转换的工具类
     */
    public class HexStringUtil {
    
        /** 16进制能用到的所有字符 */
        private static String hexCharsStr = "0123456789ABCDEF";
    
        /** 16进制能用到的所有字符数组 */
        private static char[] hexCharsArr = hexCharsStr.toCharArray();
    
        /**
         * 0123456789ABCDEF -> 0 ~ 15
         */
        private static byte oneHexChar2Byte(char c) {
            byte b = (byte) hexCharsStr.indexOf(c);
            return b;
        }
    
        /**
         * 0 ~ 15 -> 0123456789ABCDEF
         */
        private static char byte2OneHexChar(byte b) {
            char c = hexCharsArr[b];
            return c;
        }
    
        /**
         * 两个16进制字符 -> 1个byte数值
         */
        private static byte twoHexChar2Byte(char high, char low) {
            byte b = (byte) (oneHexChar2Byte(high) << 4 | oneHexChar2Byte(low));
            return b;
        }
    
        /**
         * 1个byte数值 -> 两个16进制字符
         */
        private static char[] byte2TwoHexChar(byte b) {
            char[] chars = new char[2];
    
            // 高4位, 与操作 1111 0000
            byte high4bit = (byte) ((b & 0x0f0) >> 4);
            chars[0] = byte2OneHexChar((byte) high4bit);
    
            // 低四位, 与操作 0000 1111
            byte low4bit = (byte) (b & 0x0f);
            chars[1] = byte2OneHexChar((byte) low4bit);
    
            return chars;
        }
    
        /**
         * 文本字符串 -> 十六进制字符串
         */
        public static String str2HexString(String str) {
            byte[] bytes = str.getBytes();
            return bytes2HexString(bytes);
        }
    
        /**
         * byte数组 -> 十六进制字符串
         */
        public static final String bytes2HexString(byte[] bytes) {
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < bytes.length; i++) {
                char[] chars = byte2TwoHexChar(bytes[i]);
                sb.append(new String(chars));
            }
            return sb.toString();
        }
    
        /**
         * 十六进制字符串 -> 文本字符串
         */
        public static String hexString2Str(String hexStr) {
            byte[] bytes = hexString2Bytes(hexStr);
            return new String(bytes);
        }
    
        /**
         * 16进制的字符串 -> byte数组
         */
        public static byte[] hexString2Bytes(String hexStr) {
            int length = (hexStr.length() / 2);
            byte[] bytes = new byte[length];
            char[] charArr = hexStr.toCharArray();
            for (int i = 0; i < length; i++) {
                int position = i * 2;
                bytes[i] = twoHexChar2Byte(charArr[position], charArr[position + 1]);
            }
            return bytes;
        }
    
    }

     

    转载于:https://www.cnblogs.com/zj0208/p/10650671.html

    展开全文
  • + (NSData *) stringToHexData:(NSString *)hexStr {  int len = [hexStr length] / 2; // Target length  unsigned char *buf = malloc(len);  unsigned char *whole_byte = buf;... char byte_c
    + (NSData *) stringToHexData:(NSString *)hexStr
    {
        int len = [hexStr length] / 2;    // Target length
        unsigned char *buf = malloc(len);
        unsigned char *whole_byte = buf;
        char byte_chars[3] = {'\0','\0','\0'};
        
        int i;
        for (i=0; i < [hexStr length] / 2; i++) {
            byte_chars[0] = [hexStr characterAtIndex:i*2];
            byte_chars[1] = [hexStr characterAtIndex:i*2+1];
            *whole_byte = strtol(byte_chars, NULL, 16);
            whole_byte++;
        }
        
        NSData *data = [NSData dataWithBytes:buf length:len];
        free( buf );
        return data;
    }


    //data转换为十六进制的string
    + (NSString *)hexStringFromData:(NSData *)myD{
        
        Byte *bytes = (Byte *)[myD bytes];
        //下面是Byte 转换为16进制。
        NSString *hexStr=@"";
        for(int i=0;i<[myD length];i++)
            
        {
            NSString *newHexStr = [NSString stringWithFormat:@"%x",bytes[i]&0xff];///16进制数
            
            if([newHexStr length]==1)
                
                hexStr = [NSString stringWithFormat:@"%@0%@",hexStr,newHexStr];
            
            else
                
                hexStr = [NSString stringWithFormat:@"%@%@",hexStr,newHexStr];
        }
        NSLog(@"hex = %@",hexStr);
        
        return hexStr;
    }
    展开全文
  • [UInt8]转16进制字符串 使用String的format方法,把UInt8转成hex,使用02表示2位,不足补0。 extension Array where Element == UInt8 { var hexString: String { return self.compactMap { String(format: "%02x...
  • 在udp传输中,我们app段需要得到的是字符串,而一般发指令的设备是十六进制字符串,两者是需要通过自定义方法进行转换的,这样设备和app之间才可以通讯。 1.字符串转Byte数组 “字符串”.getBytes(“编码格式”);...
  • IOS 如何把16进制字符串转换成byte?求各位大神 最好能有代码
  • 本程序实现的功能是将ASCII格式的16进制字符串转到ASCII字符串。例如,字符串“6a61636b”可转化为jack。 啥都不说了,先给程序 // // main.cpp // hex_2_asc // // Created by 刘鹏 on 14-3-18. // Copyright (c) ...
  • 今天用swfit写项目的时候遇到了转换的问题,贴出来,给需要的人
  • * 16进制字符串表示转成字节数组 * * @param hexString * 16进制格式的字符串 * @return 转换后的字节数组 **/ public static byte[] hexStr2ByteArray(String hexString) { if (StringUtils....
  • 解析报文中经常会碰到将机器码十六进制字符串转成字节数组,下面的方法挺好用 2、使用 private static String hexStr = "3131303236303832393743323437333530303231340000000000000000"; public ...
  • -(NSString*)twoConvertSixteen:(NSString*)string{ NSString* strTen =[NSString stringWithFormat:@"%lu", strtoul ( [stringUTF8String],0,2)]; int num = [strTen intValue]; NSString* sixTeenString = ...
  • Swift 十六进制字符串转颜色
  • 把一串16进制数-[UInt8],例如 01 10 CD 转成字符串-String "0110CD",代码如下: func bytesToStr(bytes:[UInt8]) -> String { var hexStr = "" for index in 0 ..< bytes.count { var Str = bytes...
  • #include <stdio.h> void main() { char s[10]; int i, n; gets(s); for (n = i = 0; s[i] != '\0'; i++) { if (s[i] >= '0' && s[i] <= '9') n = n * 16...
  • func colorWithHexString (hex:String) -> UIColor {   var cString:String ...= hex.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()).uppercaseString ... 
  • 今天在进行二进制字符串转化为十进制数字的时候,感觉明明是在范围内却报异常了,很是奇怪。百度了一下 java里面,这条语句Integer.parseInt("80000000",16)怎么抛出NumberFormatException? ...
  • 进制->十六进制 Byte bytes[]={0xA6,0x27,0x0A}; NSString *strIdL = [NSString stringWithFormat:@"%@",[[NSString alloc] initWithFormat:@"%02lx",(long)bytes[0]]]; 十六进制->十进制 NSString *re...
  • 其中将十六进制字符串转换成NSData的代码如下: - (NSData *)convertHexStrToData:(NSString *)str { if (!str || [str length] == 0) { return nil; }   NSMutableData *hexData = [...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
1 2 3 4 5 ... 20
收藏数 2,119
精华内容 847
关键字:

16进制字符串 swift