• 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)

     

    
     
    展开全文
  • 直接上代码,都是很简单的进制转换算法 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))

     

     

     

     

     

     

     

    展开全文
  • 2019独角兽企业重金招聘Python工程师标准>>> ...


     

        // MARK:
        // MARK: 字符串转二进制 获取二进制的第几位数(字符串)
        /// 字符串转二进制 获取二进制的第几位数(字符串)
         func xnStringAndBinaryDigit(string: String,number: Int) -> String? {
            
            // 字符串转 int
            let valueForInt = (string as NSString).intValue;
            
            // 后面的参数为转换的进制数 2
            let result = String(valueForInt,radix:2);
            
            // 获取字符串内容长度
            var length = result.characters.count;
            
            // 第七位数是
            var seventiethNumber: String?;
            
            /// 遍历字符串中每个字符 我们需要的是右边数起 第七位数
            for i in result.characters {
                
                if length < number {
                    
                    break;
                }
                
                if length == number {
                    
                    seventiethNumber = String(i);
                    
                    break;
                }
                
                length -= 1;
            }
            
            return seventiethNumber;
        }

     

            /*
             十进制Int 转 二进制String
             后面的参数为转换的进制数 2 10 16
             */
            let string = String(3,radix:2);
            
            // String 转 NSString
            let stringNS = NSString.init(string: string);
            
            // NSString 转 Int(十进制)
            let numberInt = stringNS.integerValue;
    
            // 十进制Int 转十六进制String
            let stringSixteen = String(30,radix:16)
            
            // 十六进制String 转 十进制Int
            let intNumber = stringSixteenChangeToInt(stringSixteen);
            
            print("\(numberInt),\(intNumber)");
    
        // MARK:
        // MARK: 十六进制String 转 十进制Int
        /// 十六进制String 转 十进制Int
         func stringSixteenChangeToInt(stringSixteen:String) -> Int {
            
            let str = stringSixteen.uppercaseString
            
            var numbrInt = 0
            
            for i in str.utf8 {
                
                numbrInt = numbrInt * 16 + Int(i) - 48
                
                // 0-9 从48开始
                if i >= 65 {
                    
                    // A-Z 从65开始,但有初始值10,所以应该是减去55
                    numbrInt -= 7
                }
            }
            return numbrInt
        }

    学自:http://www.jianshu.com/p/34d5e958910a

    转载于:https://my.oschina.net/codeismygirl/blog/683164

    展开全文
  • 16进制String和int

    2019-06-17 09:11:42
    2019独角兽企业重金招聘Python工程师标准>>> ...
    +(unsigned long)getIntFromHexString:(NSString *) str{
        //先以16为参数告诉strtoul字符串参数表示16进制数字,然后使用0x%X转为数字类型
        //strtoul如果传入的字符开头是“0x”,那么第三个参数是0也可以
        return strtoul([str UTF8String],0,16);
    }
    
    +(NSString *)toHex:(long long int)tmpid length:(int)length
    {
        NSString *nLetterValue;
        NSString *str =@"";
        long long int ttmpig;
        for (int i = 0; i<9; i++) {
            ttmpig=tmpid%16;
            tmpid=tmpid/16;
            switch (ttmpig)
            {
                case 10:
                    nLetterValue =@"A";break;
                case 11:
                    nLetterValue =@"B";break;
                case 12:
                    nLetterValue =@"C";break;
                case 13:
                    nLetterValue =@"D";break;
                case 14:
                    nLetterValue =@"E";break;
                case 15:
                    nLetterValue =@"F";break;
                default:nLetterValue=[[NSString alloc]initWithFormat:@"%lli",ttmpig];
                    
            }
            str = [nLetterValue stringByAppendingString:str];
            if (tmpid == 0) {
                break;
            }
            
        }
        while (str.length < length) {
            str = [NSString stringWithFormat:@"0%@",str];
        }
        return [NSString stringWithFormat:@"0x%@",str];
    }



    附:

    // 十六进制转换为普通字符串的。 
    + (NSString *)stringFromHexString:(NSString *)hexString { // 
      
    char *myBuffer = (char *)malloc((int)[hexString length] / 2 + 1); 
    bzero(myBuffer, [hexString length] / 2 + 1); 
    for (int i = 0; i < [hexString length] - 1; i += 2) { 
    unsigned int anInt; 
    NSString * hexCharStr = [hexString substringWithRange:NSMakeRange(i, 2)]; 
    NSScanner * scanner = [[[NSScanner alloc] initWithString:hexCharStr] autorelease]; 
    [scanner scanHexInt:&anInt]; 
    myBuffer[i / 2] = (char)anInt; 
    } 
    NSString *unicodeString = [NSString stringWithCString:myBuffer encoding:4]; 
    NSLog(@"------字符串=======%@",unicodeString); 
    return unicodeString; 
      
      
    } 
      
    //普通字符串转换为十六进制的。 
      
    + (NSString *)hexStringFromString:(NSString *)string{ 
    NSData *myD = [string dataUsingEncoding:NSUTF8StringEncoding]; 
    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]; 
    } 
    return hexStr; 
    }
    
    //int 转data
    int i = 1; 
    NSData *data = [NSData dataWithBytes: &i length: sizeof(i)]; 
    //data 转int
    int i; 
    [data getBytes: &i length: sizeof(i)];


    转载于:https://my.oschina.net/fanhoucheng/blog/367475

    展开全文
  • Swift UIColor 16进制编码转换RGB : 由于UI出图的时候,通常给的是16进制的编码颜色,我们在开发的时候需要将它转换为RGB格式,现在给出两种代码片段.   一、对UIColor进行扩展 1 extension UIColor { 2 3 /...
     
    

    Swift UIColor 16进制编码转换RGB :

    由于UI出图的时候,通常给的是16进制的编码颜色,我们在开发的时候需要将它转换为RGB格式,现在给出两种代码片段.

     

    一、对UIColor进行扩展

    复制代码
     1 extension UIColor {
     2 
     3     /**
     4      Make color with hex string
     5      - parameter hex: 16进制字符串
     6      - returns: RGB
     7      */
     8     static func colorWithHexString (hex: String) -> UIColor {
     9 
    10         var cString: String = hex.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()).uppercaseString
    11 
    12         if (cString.hasPrefix("#")) {
    13             cString = (cString as NSString).substringFromIndex(1)
    14         }
    15 
    16         if (cString.characters.count != 6) {
    17             return UIColor.grayColor()
    18         }
    19 
    20         let rString = (cString as NSString).substringToIndex(2)
    21         let gString = ((cString as NSString).substringFromIndex(2) as NSString).substringToIndex(2)
    22         let bString = ((cString as NSString).substringFromIndex(4) as NSString).substringToIndex(2)
    23 
    24         var r:CUnsignedInt = 0, g:CUnsignedInt = 0, b:CUnsignedInt = 0;
    25         NSScanner(string: rString).scanHexInt(&r)
    26         NSScanner(string: gString).scanHexInt(&g)
    27         NSScanner(string: bString).scanHexInt(&b)
    28 
    29         return UIColor(red: CGFloat(r) / 255.0, green: CGFloat(g) / 255.0, blue: CGFloat(b) / 255.0, alpha: CGFloat(1))
    30     }
    31 }
    复制代码

     

     

    二、简便方法,直接调用代码片段

    个人推荐使用这个方法,创建一个宏定义文件

    复制代码
     1 func kRGBColorFromHex(rgbValue: Int) -> (UIColor) {
     2 
     3         return UIColor(red: ((CGFloat)((rgbValue & 0xFF0000) >> 16)) / 255.0,
     4                  green: ((CGFloat)((rgbValue & 0xFF00) >> 8)) / 255.0,
     5                   blue: ((CGFloat)(rgbValue & 0xFF)) / 255.0,
     6                  alpha: 1.0)
     7 }
     8 
     9 可以这样调用
    10 kRGBColorFromHex(0x1D1D26)
    复制代码

     

         

     

     

         在实际开发中,我们拿到的设计图上的颜色往往标注的是十六进制的,而在不添加第三方库的情况下 UIColor 并不支持从十六进制数字初始化,手动将十六进制颜色转化为 RGB 形式十分浪费精力,我们可以通过为 UIColor 添加扩展的方式来支持直接从十六进制数值初始化从而为我们的开发带来便利。


    1.添加文件

    在项目中添加一个用于编写扩展代码的文件,将其命名为 UIColor+valueRGB.swift

    2.添加扩展代码

    在第一步创建的文件中添加如下代码:

    import UIKit
    
    extension UIColor {
        //用数值初始化颜色,便于生成设计图上标明的十六进制颜色
        convenience init(valueRGB: UInt, alpha: CGFloat) {
            self.init(
                red: CGFloat((valueRGB & 0xFF0000) >> 16) / 255.0,
                green: CGFloat((valueRGB & 0x00FF00) >> 8) / 255.0,
                blue: CGFloat(valueRGB & 0x0000FF) / 255.0,
                alpha: alpha
            )
        }
    }

    3.调用

    然后我们就可以在工程中以如下方式直接从十六进制数字初始化 UIColor 了:

    let testColor = UIColor(valueRGB: 0x666666, alpha: 1.0)





    Swift - UIColor使用自定义的RGB配色 

    1,比如rgb 色值为55、 186 、89 那么给UIColor设置里面要除以255
    1
    UIColor(red: 55/255, green: 186/255, blue: 89/255, alpha: 0.5)

    2,设置16进制颜色也同上
    1
    UIColor(red: 0x37/255, green: 0xba/255, blue: 0x46/255, alpha: 0.5)
     
     

    实际上这里没有做十六进制的限定,只需要是 UInt 类型都可以

     

    展开全文
  • 今天用swfit写项目的时候遇到了转换的问题,贴出来,给需要的人
  • swift 打印16进制

    2015-08-21 15:23:25
    println(String(format: "%x", b));
  • 例如let number1:Int = 8let number2:Int = 0b1000let number3:Int = 0x8这三个常量都是同一个值。 接下来要写的是真正意义上的进制之间转换 1.十进制转进制 //十进制转进制,返回的是字符串格...
  • 把一串16进制数-[UInt8],例如 01 10 CD 成字符串-String "0110CD",代码如下: func bytesToStr(bytes:[UInt8]) -> String { var hexStr = "" for index in 0 ..< bytes.count { var Str = bytes...
  • [UInt8]转16进制字符串 使用String的format方法,把UInt8成hex,使用02表示2位,不足补0。 extension Array where Element == UInt8 { var hexString: String { return self.compactMap { String(format: "%02x...
  • ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)➤GitHub地址:...
  • //给UIColor扩展extension UIColor { /// 用十六进制颜色创建UIColor /// /// - Parameter hexColor: 十六进制颜色 (0F0F0F) convenience init(hexColor: String) { // 存储转换后的数值 var red:UInt32 = 0, ...
  • #pragma mark - 十六进制转换工具 // 16进制转NSData - (NSData *)convertHexStrToData:(NSString *)str { if (!str || [str length] == 0) { return nil; } NSMutableData *hexData = [[NSMutableDa...
  • Swift 进制转换问题

    2019-10-06 15:10:31
    swift中进制转换方法。 适当修改后,可以与oc混编在oc项目中使用。 extension Int { // 10进制2进制 var toBinary: String { ... return String(self, radix: 2, uppercase: ... // 10进制转16进制 var toH...
  • + (NSData *) stringToHexData:(NSString *)hexStr ... int len = [hexStr length] / 2; // Target length  unsigned char *buf = malloc(len);  unsigned char *whole_byte = buf;  char byte_c
  • 1,十进制的字符串成数字 Swift中,如果要把字符串转换成数字类型(比如整型,浮点型等)。可以先成NSString类型,让后再。 1 2 3 4 //将文本框中的值转换成数字 var i = (tf1.text as NSString).int...
  • 1、取负数绝对值 2、取绝对值二进制码 ...PS:上述转换默认数值包含符号位,如需将十六进制字节转为数值,需要明确该十六进制字节是否为有符数值,若为有符号数值,最高位0为正数,1为负数。 ...
  • 本文 字数:1619 密钥位数:1024。 密钥格式:PKCS#8。... 存在: 1、原RSA公私密钥对,转16进制公私密钥。2、自动生成16进制密钥对。3、使用16进制私钥签名。4、使用16进制公钥验证。5...
  • import UIKitextension UIColor { //用数值初始化颜色,便于生成设计图上标明的十六进制颜色 convenience init(valueRGB: UInt, alpha: CGFloat) { self.init( red: CGFloat((valueRGB &amp; 0xFF0000) &...
1 2 3 4 5 ... 20
收藏数 1,874
精华内容 749