pythonrgb高精度浮点运算类型_python实现RGB字符串,按24位对齐后输出对应Integer行数字...

题目来源:

2021届字节跳动算法岗笔试题

题目描述:

实现一个RGB字符串(如:rgb(0, 50,255) ),按24位数字对齐后输出对应Integer型数字。R为高位,B为低位。

例如:输入 rgb(0, 50,255) ,输出13055

输入描述:

字符串(如:rgb(0, 50,255) )

输出描述:

输出 number (如:11111)

示例1

输入

rgb(192, 192, 192)

输出

12632256

代码

话不多说直接上代码

思路:题目要求按24位对齐转换,由此想到先把对应r,g,b位的Integer数字转换成16进制,因为r,g,b的取值范围是0-255,大于255也会按255算。正好对应十六进制0x00-0xff,一位16进制又对应4位二进制,六个16进制刚好是24位。之后把转换好的16进制转换为int型就可以了。

当然你也可以把r,g,b位的Integer数字直接转换成三个8位的二进制这样来算。

小提示:

格式化输出 %

%o —— oct 八进制

%d —— dec 十进制

%x —— hex 十六进制

% 不支持二进制转换,

要想实现直接输出二进制可使用 format 函数来实现,或者自己根据需求编写个二进制转换函数。

def RGB_to_Int(Red,Green,Blue):

r, g, b = (Red, Green, Blue)

packed = int('%02x%02x%02x' % (r, g, b), 16)

print(packed)

if __name__ == "__main__":

arr = input("输入数组:")

#截取字符串

str=arr[4:-1]

#获取其中的数字

str2=str.split(',')

#把str转为int,.strip()去除字符串首尾空格

Red=int(str2[0].strip())

Green=int(str2[1].strip())

Blue=int(str2[2].strip())

#调用

RGB_to_Int(Red,Green,Blue)

参考:RGB Int to RGB – Python

容易有疑问的地方

1.字符串中 百分号02x 是什么意思

1)首先该结构符合字符串格式化输出的形式:

“%x%x%x” % (r,g,b)

其中 %x 是十六进制整数

2)其次 %02x 是对 %x 的进一步补充:

% 作为格式化输出的格式符,可以用如下的方式进一步控制:

%[(name)][flags][width].[precision]typecode

(name)为命名;

flags可以有+,-,’ ‘或0。+表示右对齐。-表示左对齐。’

'为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。0表示使用0填充;

width表示显示宽度;

precision表示小数点后精度;

所以此处 %02x 表示宽度为 2 的十六进制整数、不够 2 位用 0 填充

3)再回顾整体的 “#%02x%02x%02x” 其实就是类似 “#b7bb96” 等 rgb 颜色数据

参考:参考博客

2.%02x与%2x 之间的区别

1)输出最小宽度

用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0(当最小宽度数值以0开头时)。

X 表示以十六进制形式输出

02 表示不足两位,前面补0输出;如果超过两位,则实际输出

举例:

printf("%02X", 0x345); //打印出:345

printf("%02X", 0x6); //打印出:06

而如果直接写为 %2x,数据不足两位时,实际输出,即不额外补0输出; 如果超过两位,则实际输出。

printf("%2X", 0x345); //打印出:345

printf("%2X", 0x6); //打印出:6

参考:参考博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/520807.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea升级2019.3后字体有的粗有的细

解决办法: 设置File–>Settings–>Editor–>Fallback font–>SimHei

飞天2.0 | 万物智能的基础服务

在2018杭州云栖大会的主论坛上,阿里云技术研发总经理蒋江伟发表了《飞天2.0,万物智能的基础服务》的主题演讲,从全连接、安全、简便、高速四个方面,阐述了飞天2.0网络的新特性。 蒋江伟表示,万物智能时代产生的海量数据…

黑科技揭秘:3分钟,轻松构建一张覆盖全球的企业专有网络

2018杭州云栖大会主论坛上,阿里巴巴研发技术总经理 蒋江伟在大会现场演示了分钟级构建企业专有网络的技术。 回顾一下当时的场景,一共有三步操作:上电, WAN口连接Internet,LAN口连接电脑,在工程师没有对设备…

恕我直言,有了这款 IDEA 插件,你可能只需要写 30% 的代码。。。

文章目录1. 安装(EasyCode)2. 建立数据库3. 在IDEA配置连接数据库4. 开始生成代码5. pom.xml6. Application.yml7. 启动项目8. 测试一下Easycode是idea的一个插件,可以直接对数据的表生成entity,controller,service,dao,mapper,无需任何编码,简单而强大。…

linux硬盘为啥分区,Linux下为什么要进行磁盘的分区

一、先从整体上说说说分区的好处:1.数据安全:主要方面:只用一个分区,若遇到系统需要重装或者分区需要进行格式化等,原有的重要文件无法在本硬盘保留,而若提前进行了合理分区,则用户数据不会收到影响次要方面,我们知道&…

双十一提前预热,这款耳机直降80元!

还有不到10天时间就到双十一狂欢购物节了你们是不是已经把购物车加满了呢?反正的我已经加了好多了此时好想自己有个程序员男友帮我把购物车清空可惜了赶不上了之前推荐了一款兰士顿的T7R按键版蓝牙耳机大部分购买的用户给我的反馈说还不错哦但是也有一部分人问我有没…

python以写模式打开录入_Python的学习(六)—-文件和输入输出处理 | 学步园

Python中的文件和输入输出处理1. 文件对象的概念文件对象不仅可以用来访问普通的磁盘文件,还可以访问任何其他类型抽象层面上的文件。例如实时地“打开一个URL”来读取Web页面,在另一个独立的进程中执行一个命令进行通信,就好像是两个同时打开…

阿里云朱照远:视频云2.0,更大规模、更智能、更清晰

在2018杭州云栖大会19号下午的主论坛上,阿里云视频云总经理朱照远发表了《视频云2.0,智享未来视界》的主题演讲,从超大规模、智能化、实时连接、超高清8K这四个方面,阐述了视频云2.0的定义。 朱照远表示,在这个超大规模…

这次的新计算,很全能!

在2018杭州云栖大会上,阿里云技术研发总经理蒋江伟发表了《全能计算,灵活稳定》的主题演讲,从函数计算、弹性容器实例、高吞吐ESSD云盘、弹性裸金属服务器、SCC超级计算集群这五个方面,阐述了飞天2.0计算的新特性。 蒋江伟表示&am…

linux virtualhost不能正常运行,造成网站无法正常运行的4个原因!

原标题:造成网站无法正常运行的4个原因!同虚拟主机产品对网站开发环境要求不同,如果两者不兼容,网站自然无法正常运行,这也是最常见的原因之一。因此,用户需设计好自己网站的开发环境,再去选择匹…

AMD第二代7nm GPU现身:原生支持光追;Facebook曾洽谈收购Fitbit 但谷歌的报价是其两倍……...

极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周两次,打卡即read更快、更全了解泛云圈精彩newsgo go go近日,位于软件园的联想未来中心正式开幕&…

阿里云首席智联网科学家丁险峰:每个企业都将有LoRa

一场由物联网(IoT)技术引发的“万物智联”革命正在加速到来。而物联网,也成为了阿里巴巴在继电商、金融、物流、云计算后新的主赛道。 在2018年9月19日杭州云栖主论坛上,阿里云首席智联网科学家丁险峰从天空物联网的搭建、达尔文计…

3. 什么是icmp?icmp与ip的关系_月入3万的大龄剩女相亲被拒:如果余生是你,晚一点有什么关系...

做你的情感树洞。点击上方“关注”,你的故事,你说,我听禾田飞歌 | 原创文章1、“爱情是我坚持了这么久的原则,我为什么要放弃呀?”等待爱情,盛如曦用了35年,还是没有等到她的意中人,…

SLF4JLogFactory does not implement org.apache.commons.logging.LogFactory

org.apache.commons.discovery.DiscoveryException: Class org.apache.commons.logging.impl.SLF4JLogFactory does not implement org.apache.commons.logging.LogFactory但是在 commons-logging包下根本没有SLF4JLogFactory类 解决方法 所以要引入 <dependency><g…

阿里云安全肖力:云的六大安全基因助力企业构建智能化安全体系

杭州云栖大会主论坛上&#xff0c;阿里云安全事业部总经理肖力发表了《云安全&#xff0c;技术驱动智能化防御》主题演讲&#xff0c;结合企业的安全痛点详细解读了云上安全的六大优势&#xff0c;并指出了企业安全最佳实践之道。 肖力表示&#xff0c;传统的企业安全边界正在…

美国爆料:量子计算机将如何颠覆一切?

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 架构师技术联盟责编 | 阿秃世界第一超算Summit需要大约1万年来完成的计算&#xff0c;量子计算机需要多久&#xff1f;谷歌研究人员给出答案&#xff1a;3分20秒。据英国《金融时报》报道&#xff0c;谷歌研究人员在本周向美…

linux删除磁盘后刷新,linux – 短暂的文件是否刷新到磁盘?

我的程序创建了许多小的短期文件.它们通常在创建后的一秒内被删除.这些文件位于由真实硬盘支持的ext4文件系统中.我知道Linux会定期将(pdflush)脏页刷新到磁盘.由于我的文件是短暂的,很可能它们不是由pdflush缓存的.我的问题是,我的程序是否会导致大量磁盘写入&#xff1f;我担…

奥运转播加速上云,北京冬奥组委测试阿里云视频传输技术

10月11日晚&#xff0c;北京冬奥组委与国际奥林匹克转播机构进行了云视频传输技术测试&#xff0c;工作人员通过阿里云传输技术&#xff0c;对布宜诺斯艾利斯青奥会多个项目进行多路电视转播测试&#xff0c;监测了实时传播的画面清晰度、延时等指标&#xff0c;并模拟了整套体…

python输入三行数据_3行Python代码就能获取海量数据?

原标题&#xff1a;3行Python代码就能获取海量数据&#xff1f;一谈起数据分析&#xff0c;首先想到的就是数据&#xff0c;没有数据&#xff0c;谈何分析。毕竟好的菜肴&#xff0c;没有好的原材料&#xff0c;是很难做的&#xff5e;所以本期小F就给大家分享一个获取数据的方…