十六进制

进制转换

依然范特西╮ 提交于 2019-12-07 23:36:35
我们知道十进制转换成二进制用短除法,但是为什么用短除法呢?请往下看。 “数制”只是一套符号系统来表示指称“量”的多少。我们用“1”这个符号来表示一个这一“量”的概念。自然界的“量”是无穷的,我们不可能为每一个“量”都造一个符号,这样的系统没人记得住。所以必须用有限的符号按一定的规律进行排列组合来表示这无限的“量”。符号是有限的,这些符号按照某种规则进行排列组合的个数是无限的。十进制是10个符号的排列组合,二进制是2个符号的排列组合。 在进行进制转换时有一基本原则:转换后表达的“量”的多少不能发生改变。二进制中的111个苹果和十进制中的7个苹果是一样多的。 十进制中的数位排列是这样的…… 万 千 百 十 个 十分 百分 千分…… R进制中的数位排列是这样的……R^4 R^3R^2 R^1 R^0 R^-1 R^-2 R^-3…… 可以看出相邻的数位间相差进制的一次方。 以下部分来源:知乎网友 进制这事儿,说到底就是位值原理,即:同一个数字,放在不同的数位上,代表不同大小的“量”。例如:十进制中,百位上的1表示100,十位上的1表示10。 任何进制中,每个数都可以按 位权 展开成各个数位上的数字乘以对应数位的位权,再相加的形式,如:   十进制的123=1×100+2×10+3×1   十进制的9876=9×1000+8×100+7×10+6×1   问:为啥相应的数位是1000

c 语言进制表示

时间秒杀一切 提交于 2019-12-06 10:55:36
十进制:以正常数字1-9开头,如:123 八进制:以数字0开头,如:0123 十六进制:以数字0x开头,如:0x123 二进制:c 语言不能直接书写二进制数 printf打印: 十进制:%d 八进制:%o 十六进制:%x 来源: https://www.cnblogs.com/xumaomao/p/11979468.html

python3 字符串转十六进制unicode码

大憨熊 提交于 2019-12-06 08:14:37
笔者在折腾USB转GSM模块发中文短信的时候,PDU模式需要把字符串转成十六进制unicode码。 中文的好解决,encode unicode_escape编码就可以了 # 需要把\\u去掉才能用于USB转GSM模块发中文短信 >>> '中'.encode('unicode_escape') b'\\u4e2d' 但英文和数字就麻烦了,encode没有变化 >>> 'a'.encode('unicode_escape') b'a' 最终找到用 ord 把字符串转成ascii/unicode数值, 然后用 hex 把数值转成十六进制unicode码 # 十六进制unicode码长度大于4位的,需要去掉0x,等于4位的,需要把0x替换成00,才能用于USB转GSM模块发中文短信 >>> hex(ord('中')) '0x4e2d' -> '4e2d' >>> hex(ord('a')) '0x61' -> '0061' >>> hex(ord('2')) '0x32' -> '0032' 完美 但还有一个问题就是读取短信的时候读到的也是十六进制unicode码,这就脑壳疼了,不过我找到一个偷懒的方法,每4位组成一个十六进制unicode码,前面加上\u,eval一下就转成字符串了 >>> eval('\u0032') 2 >>> eval('\u0061') 'a' >>> eval(

LeetCode 5112. 十六进制魔术数字 Hexspeak

回眸只為那壹抹淺笑 提交于 2019-12-06 07:06:44
地址 https://leetcode-cn.com/problems/hexspeak/ 题目描述 字母大写的十六进制字符串,然后将所有的数字 0 变成字母 O ,将数字 1 变成字母 I 。 如果一个数字在转换后只包含 {“A”, “B”, “C”, “D”, “E”, “F”, “I”, “O”} ,那么我们就认为这个转换是有效的。 给你一个字符串 num ,它表示一个十进制数 N,如果它的十六进制魔术数字转换是有效的,请返回转换后的结果,否则返回 “ERROR” 。 示例 1: 输入:num = "257" 输出:"IOI" 解释:257 的十六进制表示是 101 。 示例 2: 输入:num = "3" 输出:"ERROR" 提示: 1 <= N <= 10^12 给定字符串不会有前导 0 。 结果中的所有字母都应该是大写字母。 签到模拟题 1 class Solution { 2 public: 3 vector<char> numV{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; 4 string toHexspeak(string num) { 5 long long N = atoll(num.c_str()); 6 string result; 7 while(N!=0){ 8

【30分钟学完】canvas动画|游戏基础(extra1):颜色那些事

点点圈 提交于 2019-12-06 05:17:05
前言 本篇主要讲解关于计算机颜色系统的概念,后续结合一些canvas的应用。因为是“你不知道也没关系”的边缘知识,所以作为本系列教程的扩展,没有兴趣的同学可以跳过。 开始我们万紫千红的故事吧! 本人能力有限,欢迎牛人共同讨论,批评指正。 先从老朋友CSS讲起 我们熟悉的CSS风格颜色表示方式,大体有下面几种,canvas大体是直接沿用这些写法的,但最后包含透明度的写法有些许不同。 #RRGGBB :十六进制格式,红绿蓝分别用两位十六进制数表示。 #RGB :简写的十六进制格式,转换成6位格式时会重复三原色,例如 #fb0 -> #ffbb00 。 rgb(R,G,B) :函数表达式,三原色分别由0~255的整数值表示。 rgba(R,G,B,A) :包含透明度的函数表达式,其中alpha参数为0~1,需要指定透明度的颜色必须使用该格式。 作为前端人员平时用得很多,但你可能会一脸懵逼之前自己写的颜色字符串居然是十六进制? 待我细细道来。这里的R即是红色(red),G即是绿色(green),B即是蓝色(blue),这三个是显示器普遍使用的 三基色 ,属于 叠加型原色 ,百科摘录如下。 【科普】原色是指不能透过其他颜色的混合调配而得出的“基本色”。 以不同比例将原色混合,可以产生出其他的新颜色。以数学的向量空间来解释色彩系统,则原色在空间内可作为一组基底向量,并且能组合出一个“色彩空间”

tbytes 转 十六进制 string

孤人 提交于 2019-12-05 18:34:05
function Bytes2HexStr(buf: TBytes; len: Integer): AnsiString; begin SetLength(Result, len* 2 ); BinToHex(@buf[ 0 ], PAnsiChar(Result), len); end ; procedure TForm1.FormCreate(Sender: TObject); var bf: TBytes; Str: AnsiString; begin bf := BytesOf( '5677899090jjnm,nAB0098CDEFG' ); rStr := Bytes2HexStr(bf, Length(bf)); ShowMessage(rStr); end ; 来源: oschina 链接: https://my.oschina.net/u/582827/blog/596506

Javascript-基本类型

不想你离开。 提交于 2019-12-05 11:42:23
数字 JavaScript不区分整数和浮点数,所有数字都用浮点数表示。 能够表示最大值是 -2 53 ~ 2 53 ,包含边界。超过范围的数无法保证低位数字的精度。 JavaScript能直接识别十进制的整型直接量和十六进制值(以 0x 或 0X 为前缀,由 0~9 和 a(A)~f(F) 构成,如: 0xff ,即 15 * 16 + 15 = 255 )。ECMAScript标准不支持八进制直接量。 浮点数直接量表达式: [digits][.digits][(E|e)(+|-)digits] ,如: 3.12E12 => 3.12 12 , 浮点数值的最高精度是 17 位小数 算数运算符:加 + 、减 - 、乘 * 、除 / 、取余 % JavaScript中算数运算在溢出、下溢(无限接近于零并比JavaScript能表示的最小值还小的数,JavaScript将会返回0)或被零整除时不会报错(返回正(或负)无穷,例外:零除以零,结果是一个非数字,用 NaN 表示)。溢出时,结果为无穷大( Infinity )值;下溢结果为负无穷( -Infinity )。基于无穷大的加减乘除运算结果还是无穷大(保留正负号)。 NaN 表示非数字值,它和任何值都不相等,包括自身。判断一个值是否为NaN: x != x ,当切只当x为 NaN 时,表达式为true。 函数 isNaN()

Python之基于十六进制判断文件类型

给你一囗甜甜゛ 提交于 2019-12-05 09:23:06
核心代码: #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author : suk import struct from io import BytesIO # 支持文件类型 # 用16进制字符串的目的是可以知道文件头是多少字节 # 各种文件头的长度不一样,少则2字符,长则8字符 def typeList(types): type_dict = {'jpg': ['FFD8FFE000104A464946'], 'png': ['89504E470D0A1A0A0000'], 'gif': ['47494638396126026F01'], 'tif': ['49492A00227105008037'], 'bmp': ['424D8E1B030000000000'], 'dwg': ['41433130313500000000'], 'html': ['3C21444F435459504520'], 'htm': ['3C21646F637479706520'], 'css': ['48544D4C207B0D0A0942'], 'js': ['696B2E71623D696B2E71'], 'rtf': ['7B5C727466315C616E73'], 'psd': ['38425053000100000000'],

十六进制与二进制的转换

五迷三道 提交于 2019-12-05 06:56:17
二进制:0,1 八进制:0,1,2,3,4,5,6,7 十进制:0,1,2,3,4,5,6,7,8,9 十六进制:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 计算机设备都使用二进制,因为二进制只有0和1,可以很简单的代表电路中的两种状态,很容易被机器识别。 十六进制一位可以对应4位二进制数字,用十六进制来表示二进制较为方便,两位十六进制刚好可以表示一个字节。所以现代计算机中常用十六进制。 4位二进制代表1位十六进制,对应如下 0 1 2 3 4 5 6 7 0000 0001 0010 0011 0100 0101 0110 0111 8 9 A B C D E F 1000 1001 1010 1011 1100 1101 1110 1111 在进行十六进制与二进制的转换时,将每一位十六进制转换成4位二进制即可 A4 -> 1010 0100 而二进制转化为十六进制时,则划分为4位一组转成1位十六进制即可,缺位补零 11101 -> 0001 1101 -> 1D 来源: https://www.cnblogs.com/mowl/p/11912034.html