十六进制

如何从十六进制字符串创建UIColor?

*爱你&永不变心* 提交于 2020-02-26 17:04:04
如何从 十六进制 字符串格式创建 UIColor ,例如 #00FF00 ? #1楼 这是另一种选择。 - (UIColor *)colorWithRGBHex:(UInt32)hex { int r = (hex >> 16) & 0xFF; int g = (hex >> 8) & 0xFF; int b = (hex) & 0xFF; return [UIColor colorWithRed:r / 255.0f green:g / 255.0f blue:b / 255.0f alpha:1.0f]; } #2楼 简洁的解决方案: // Assumes input like "#00FF00" (#RRGGBB). + (UIColor *)colorFromHexString:(NSString *)hexString { unsigned rgbValue = 0; NSScanner *scanner = [NSScanner scannerWithString:hexString]; [scanner setScanLocation:1]; // bypass '#' character [scanner scanHexInt:&rgbValue]; return [UIColor colorWithRed:((rgbValue & 0xFF0000) >> 16)

RGB到十六进制和十六进制到RGB

馋奶兔 提交于 2020-02-26 11:43:46
如何将RGB格式的颜色转换为十六进制格式,反之亦然? 例如,将 '#0080C0' 转换为 (0, 128, 192) '#0080C0' (0, 128, 192) 。 #1楼 hexToRgb的替代版本: function hexToRgb(hex) { var bigint = parseInt(hex, 16); var r = (bigint >> 16) & 255; var g = (bigint >> 8) & 255; var b = bigint & 255; return r + "," + g + "," + b; } 编辑:2017/3/28这是另一种方法 似乎更快 function hexToRgbNew(hex) { var arrBuff = new ArrayBuffer(4); var vw = new DataView(arrBuff); vw.setUint32(0,parseInt(hex, 16),false); var arrByte = new Uint8Array(arrBuff); return arrByte[1] + "," + arrByte[2] + "," + arrByte[3]; } 编辑:8/11/2017经过更多测试后,上述新方法并不快:(。虽然这是一种有趣的替代方法。 #2楼 此代码接受#fff和

浮点数的二进制表示学习笔记

瘦欲@ 提交于 2020-02-23 10:11:34
最近和一个同事做关于浮点数的接口,顺带研究了一下。 基础知识: 十进制转十六进制; 十六进制转二进制; IEEE制定的浮点数表示规则; 了解: 目前C/C++编译器标准都遵照IEEE制定的浮点数表示法来进行float,double运算。这种结构是一种科学计数法,用符号、指数和尾数来表示,底数定为2——即把一个浮点数表示为尾数乘以2的指数次方再添上符号。下面是具体的规格: 符号位 阶码 尾数 长度 float 1 8 23 32 double 1 11 52 64 以下通过几个例子讲解浮点数如何转换为二进制数 例一: 已知:double类型38414.4。 求:其对应的二进制表示。 分析:double类型共计64位,折合8字节。由最高到最低位分别是第63、62、61、……、0位: 最高位63位是符号位,1表示该数为负,0表示该数为正; 62-52位,一共11位是指数位; 51-0位,一共52位是尾数位。 步骤:按照IEEE浮点数表示法,下面先把38414.4转换为十六进制数。 把整数部和小数部分开处理:整数部直接化十六进制:960E。小数的处理: 0.4=0.5*0+0.25*1+0.125*1+0.0625*0+…… 实际上这永远算不完!这就是著名的浮点数精度问题。所以直到加上前面的整数部分算够53位就行了。隐藏位技术:最高位的1不写入内存(最终保留下来的还是52位)。

[MongoDB]MongoDB的ObjectId组成

时间秒杀一切 提交于 2020-02-22 19:40:06
一、ObjectId的组成 首先通过终端命令行,向mongodb的collection中插入一条不带“_id”的记录。然后,通过查询刚插入的数据,发现自动生成了一个objectId “5e4fa350b636f733a15d6f62”这个24位的字符串,虽然看起来很长,也很难理解,但实际上它是由一组十六进制的字符构成,每个字节两位的十六进制数字,总共用了12字节的存储空间。相比MYSQL int类型的4个字节,MongoDB确实多出了很多字节。不过按照现在的存储设备,多出来的字节应该不会成为什么瓶颈。不过MongoDB的这种设计,体现着空间换时间的思想。 ObjectId的官方规范 1)Time 时间戳。将刚才生成的objectid的前4位进行提取“5e4fa350”,然后按照十六进制转为十进制,变为“1582277456”,这个数字就是一个时间戳。通过时间戳的转换,就成了易看清的时间格式2020-02-21 17:30:56, 2)Machine 机器。接下来的三个十六进制就是“b636f7”,这三个是所在主机的唯一标识符,一般是机器主机名的散列值,这样就确保了不同主机生成不同的机器hash值,确保在分布式中不造成冲突,这也就是在同一台机器生成的objectId中间的字符串都是一模一样的原因。 3)PID 进程ID

十六进制转八进制(字符串比对+运算综合)-蓝桥杯

自闭症网瘾萝莉.ら 提交于 2020-02-22 05:47:05
总结 使用 string 对象,==using namespace std;==不能忘 C++中的数学函数,pow(x,y) = x^y 字符串中的字符转化为int 数字 str[i] - ‘0’ 各个进制的转化 int 的 temp(新变量)要赋初值 注意在变量使用中,有些中间变量内容的清楚 关于调试 控制台和打印追踪 关于代码在书写过程中的策略 *先将功能模块写出来,可以分不同的文件,分别调试 Process finished with exit code返回不是 0,说明哪里出了问题 关于特判的思路 避免前面出现 0,只要写全部为零进行的 break 操作,其余的正常进行 输出格式要完全正确 数组的顺序,建议在书写代码块之前, 对各个功能块进行草稿,调试的过程中 #include <iostream> #include <math.h> using namespace std; //将二进制转化为八进制的转化函数,返回八进制 char convert(string str) { string string1 = ""; int temp = 0; for (int i = 2; i >= 0; i--) { temp += (str[i] - '0') * pow(2, 2 - i); } char str2 = '0' + temp; return str2; } /

前端工程师必备的几个实用网站

拈花ヽ惹草 提交于 2020-02-13 04:13:26
一、配色类网站 http://colorhunt.co 这个网站给我们提供了很多的配色方案,我们直接使用就OK了。使用方法也很简单,鼠标移动到对应的颜色上,我们就可以看到颜色的十六进制码,复制这个颜色到工具里就可以使用了。 https://webgradients.com/ 180种渐变方案供你选择,还可以直接复制CSS样式应用到网页中 https://color.adobe.com/zh/create/color-wheel 这个是Adobe公司出的,他提供了多种配色方案。我们点击圆盘中间的点,就可以调整出我们想要的配色方案。 http://www.colorhunter.com/ 这是一个提取现有图片配色方案的工具。我们上传一张图片,它就会帮我们把图片的配色提取出来供我们使用。 http://www.bootcss.com/p/websafecolors/ 这个网站是为WEB设计,开发中经常用到的安全色。网站内列出了颜色的十六进制码和RGB码,复制粘贴就可以了。 http://www.sioe.cn/yingyong/yanse-rgb-16/ 这是一个在线RGB和十六进制颜色码转换工具。在对应的位置填入十六进制代码,点击转换,我们就可以获取到RGB颜色的代码了。 二、图标类网站 http://www.iconfont.cn/plus 这是阿里巴巴旗下的图标库网站

从零开始学java(12)

与世无争的帅哥 提交于 2020-02-11 23:38:25
Day2 今天了解一下一些常用的命令与基础知识,并且学会使用IDE(Integrated Development Environment集成开发环境),以eclipse为例。 1.DOS常见的命令 1 dir 无参数:查看当前所在目录的文件和文件夹。 /s:查看当前目录及其所有子目录的文件和文件夹。 /a:查看包括隐含文件的所有文件。 /ah:只显示出隐含文件。 /w:以紧凑方式(一行显示5个文件)显示文件和文件夹。 /p:以分页方式(显示一页之后会自动暂停)显示。 |more:前面那个符号是“\”上面的那个,叫做重定向符号,就是把一个命令的结果输出为另外一个命令的参数。more也是一个命令,dir /w |more 得到的结果和dir /w /p的结果是一样的。 其他的参数大家可以用:dir/?查看。 2 cd cd 目录名:进入特定的目录。如果看到有个目录显示为:abcdef ghi 就 输入:cd abcdef.ghi进入该目录。 cd\ 退回到根目录。 cd…退回到上一级目录。 3 md rd md 目录名:建立特定的文件夹。 (dos下面习惯叫目录,win下面习惯叫文件夹。) rd 目录名:删除特定的文件夹。 4 cls 清除屏幕。 清除屏幕上所有的显示内容,只留下CLS命令前的路径 5 copy copy 路径\文件名 路径\文件名 :把一个文件拷贝到另一个地方。 6

从零开始学java(12)

拜拜、爱过 提交于 2020-02-11 23:31:46
Day2 今天了解一下一些常用的命令与基础知识,并且学会使用IDE(Integrated Development Environment集成开发环境),以eclipse为例。 1.DOS常见的命令 1 dir 无参数:查看当前所在目录的文件和文件夹。 /s:查看当前目录及其所有子目录的文件和文件夹。 /a:查看包括隐含文件的所有文件。 /ah:只显示出隐含文件。 /w:以紧凑方式(一行显示5个文件)显示文件和文件夹。 /p:以分页方式(显示一页之后会自动暂停)显示。 |more:前面那个符号是“\”上面的那个,叫做重定向符号,就是把一个命令的结果输出为另外一个命令的参数。more也是一个命令,dir /w |more 得到的结果和dir /w /p的结果是一样的。 其他的参数大家可以用:dir/?查看。 2 cd cd 目录名:进入特定的目录。如果看到有个目录显示为:abcdef ghi 就 输入:cd abcdef.ghi进入该目录。 cd\ 退回到根目录。 cd…退回到上一级目录。 3 md rd md 目录名:建立特定的文件夹。 (dos下面习惯叫目录,win下面习惯叫文件夹。) rd 目录名:删除特定的文件夹。 4 cls 清除屏幕。 清除屏幕上所有的显示内容,只留下CLS命令前的路径 5 copy copy 路径\文件名 路径\文件名 :把一个文件拷贝到另一个地方。 6

进制转换方法总结——摘自百度

五迷三道 提交于 2020-02-11 09:31:25
进制转换方法总结——摘自百度 先讲一下定义吧,进制也就是进制位,对于接触过电脑的人来说应该都不陌生,我们常用的进制包括:二进制、八进制、十进制与十六进制,它们之间区别在于数运算时是逢几进一位。比如二进制是逢2进一位,十进制也就是我们常用的0-9是逢10进一位。其他的同理。 好的,接下来就是进制之间的互相转换了。 二进制与十进制之间的转换 1.十进制转二进制 方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除,直到商为0为止。 2.二进制转十进制 方法为:把二进制数按权展开、相加即得十进制数。 二进制与八进制之间的转换 1.八进制转二进制 方法为:八进制数通过除2取余法,得到二进制数,对每个八进制为3个二进制,不足时在最左边补零。 2.二进制转八进制 方法为:3位二进制数按权展开相加得到1位八进制数。(注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0)。 二进制与十六进制之间的转换 1.十六进制转二进制 方法为:十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。 2.二进制转十六进制 方法为:与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一。(注意事项,4位二进制转成十六进制是从右到左开始转换,不足时补0)。 十进制与八进制与十六进制之间的转换 1.十进制转八进制或者十六进制有两种方法 第一

java进制转换

一个人想着一个人 提交于 2020-02-10 18:02:36
如何求一个0~255范围内的整数的十六进制值,例如60的十六进制表示形式3C /* * 如何求一个0~255范围内的整数的十六进制值, * 例如60的十六进制表示形式3C */ public class no6 { public static void main(String[] args) { //method1:自动实现 String str1 = Integer.toBinaryString(60); String str2 = Integer.toHexString(60); System.out.println(str1); System.out.println(str2); //method2:手动实现 int i1 = 60; int i2 = i1&15; String j = (i2>9)?(char)(i2-10+'A')+"":i2+""; int temp = i1 >>> 4; i2 = temp &15; String k = (i2>9)?(char)(i2-10+'A')+"":i2+""; System.out.println(k+""+j); } } 来源: CSDN 作者: TT_yan 链接: https://blog.csdn.net/twy19971114/article/details/104251657