进制转换

oc 16进制字符串与10进制的转换 两行代码搞定

别等时光非礼了梦想. 提交于 2021-02-07 22:46:50
下面是一个帐号的转换,需要给渔船设备传递16进制的字符串,之后经设备进行北斗与服务间的通信,下面是转换的方式: NSLog(@"%x",50038); 2016-03-01 22:16:58.861 testStr[3855:369016] 12a401927 因为需要,整好必须是4个子节,然后16进制位8位,所以可以用以下方法进行转换 NSLog(@"%.8x",50038); 2016-03-01 22:22:27.647 testStr[3905:374086] 0000c376 这样的对比就比较明显了,.8x表示不足8位的在前面补0 反之需要对16进制转成10进制进行处理,也很简单,当初用了各种方法,比如单个截取然后转乘100进制,效率低下且容易出错,然而明明有更好的方法可以解决的,下面给出方法 NSLog(@"%ld",strtoul([@"0000c376" UTF8String],0, 16)); 2016-03-01 22:29:57.755 testStr[3978:380678] 50038 原则上16进制转成10进制调用了c语言的函数,具体以下,见下-- strtoul()会将参数nptr字符串根据参数base来转换成无符号的 长整型 数。参数base范围从2至36,或0。参数base代表采用的进制方式,如base值为10则采用10进制

进制转换

我怕爱的太早我们不能终老 提交于 2020-03-11 13:24:51
添加链接描述 # include <bits/stdc++.h> # define ll long long using namespace std ; ll n , m , sum = 0 ; string x , s = "" ; int main ( ) { ios :: sync_with_stdio ( false ) ; cin . tie ( 0 ) ; cin >> n >> x >> m ; for ( int i = 0 ; i < x . size ( ) ; i ++ ) { if ( x [ i ] < 'A' ) { sum + = ( x [ i ] - '0' ) * pow ( n , x . size ( ) - i - 1 ) ; } else { sum + = ( x [ i ] - 'A' + 10 ) * pow ( n , x . size ( ) - i - 1 ) ; } } while ( sum ) { if ( sum % m < 10 ) { s + = sum % m + '0' ; } else { s + = sum % m + 'A' - 10 ; } sum / = m ; } reverse ( s . begin ( ) , s . end ( ) ) ; cout << s << endl ; return

任意进制转换为十进制

a 夏天 提交于 2020-03-07 10:18:23
//十六进制转换为十进制 #include<iostream> using namespace std; const int N=16; const int M=8; long long convert(int a,char s[])//任意进制转换为十进制 { long long val=0; for(int i=0;s[i];i++) { if(isdigit(s[i])) val=val*a+s[i]-'0'; else val=val*a+s[i]-'A'+10; } return val; } int main(void) { char s[M]; scanf("%s",s); long long a=convert(N,s); cout<<a<<endl; return 0; } 来源: https://www.cnblogs.com/cxwpluto/p/12432559.html

C++实现2~16进制转换

百般思念 提交于 2020-03-06 01:35:06
进制转换 给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数 输入描述 :输入为一行,M(32位整数)、N(2 ≤ N ≤ 16),以空格隔开。 输出描述 :为每个测试实例输出转换后的数,每个输出占一行。如果N大于9,则对应的数字规则参考16进制(比如,10用A表示,等等) 输入:7 2 输出:111 先上代码 # include <iostream> # include <string> # include <algorithm> using namespace std ; void NSystem ( string & s , int m , int n ) { int tmp = 0 ; bool flag = true ; if ( m == 0 ) //0的其他进制还是0 { s . push_back ( '0' ) ; return ; } while ( m ) { if ( m < 0 ) { m = - m ; //先将m当成正数来处理 flag = false ; } if ( m % n > 9 ) tmp = ( m % n - 10 + 'A' ) ; //参考16进制,超过9用字母表示 else tmp = m % n + '0' ; s . push_back ( tmp ) ; m / = n ; } if ( flag ==

pta-7-11进制转换问题

眉间皱痕 提交于 2020-03-04 23:36:28
例如: #将十进制数转换成十六进制# 将该数m,不断地对16取余数,每次取余数后用商来更新被除数; 如果你想要手动计算的话,举例来说吧 5621转换为16进制数的方法是“除16取余”方法, 5621/16=商351余5,16进制最后一位为5 351/16=商21余15,16进制右边第二位为F 21/16=商1余5,16进制右边第三位为5 1/16=商0余1,16进制数右边第四为为1 商0就不继续除了 最后的结果为15F5 相反的: #将十六进制数转换十进制数# 例如:15F5(H)=5*16^0+15*16^1+5*16^2+1*16^3(D);即从左到右,第i位×16的i-1次 --------------------------------------------------------------------假装分割线----------------------------------------------------------------------- 代码如下: 十进制转十六进制 #include<stdio.h> int main() { int m,a,i=0,str[100]; m=a=0; scanf("%d",&m); a=m; while(a) { str[i]=a%16; a/=16; i++; } int n=i; for(i=n-1;i>=0;i--

JS-011-颜色进制转换(RGB转16进制;16进制转RGB)

佐手、 提交于 2020-03-01 20:49:18
  在网页开发的时候,经常需要进行颜色设置,因而经常需要遇到进行颜色进制转换的问题,例如:RGB转16进制;16进制转RGB),前几天在测试的时候,发现网站的颜色进制转换某类16进制颜色(例如:#000080,#FA08FA)转换时总是提示颜色非法,看了一下 js 源码,发现其进制转换的方法是错误的。找了一下度娘和谷大爷,最终写了一个颜色转换的小方法,源码如下所示:    String.prototype.colorHex2Rgb = function(){ var reg = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/; var sColor = this.toLowerCase(); if(sColor && reg.test(sColor)){ if(sColor.length === 4){ var sColorNew = "#"; for(var i=1; i<4; i+=1){ sColorNew += sColor.slice(i,i+1).concat(sColor.slice(i,i+1)); } sColor = sColorNew; } var sColorChange = []; for(var i=1; i<7; i+=2){ sColorChange.push(parseInt("0x"+sColor.slice(i,i+2

C语言-进制转换

此生再无相见时 提交于 2020-03-01 14:42:22
//将一个正整数转换成其他基数的函数 #include <stdio.h> int convertedNumber [64]; long int numberToConvert; int base; int digit = 0; void getNumberAndBase (void) { printf ("请输入你需要转换的数字:\n"); scanf ("%li", &numberToConvert); printf ("你想转换成几进制? "); scanf ("%i", &base); if ( base < 2 || base > 16) { printf ("!!输入错误,必须是2--16之间的数字!!\n"); base = 10; } } void convertNumber (void) { do { convertedNumber[digit] = numberToConvert % base; ++digit; numberToConvert /= base; } while (numberToConvert != 0); } void displayConvertedNumber (void) { const char baseDigits [16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',

JavaScript数值进制转换

时光毁灭记忆、已成空白 提交于 2020-02-28 15:38:24
十进制转换成其他进制 objectname.toString([radix]) objectname 必选项。要得到字符串表示的对象。 radix 可选项。指定将数字值转换为字符串时的进制。 返回对象的 字符串 表示。 其他进制转换成十进制 parseInt(numstring, [radix]) numstring 必选项。要转换为数字的字符串。 radix 可选项。在 2 和 36 之间的表示 numstring 所保存数字的进制的值。如果没有提供,则前缀为 '0x' 的字符串被当作十六进制,前缀为 '0' 的字符串被当作八进制。所有其它字符串都被当作是十进制的。 返回由字符串转换得到的整数。 比如说,在网页中常用十六进制的颜色值,alpha值: console.log(Math.floor(0.4*255).toString(16)) 将16进制的值转换为十进制的值: console.log(parseInt('E',16)) console.log(parseInt('0xFF',16)) 来源: oschina 链接: https://my.oschina.net/u/736179/blog/222784

小计算器(BigInteger的巧用)

心已入冬 提交于 2020-02-28 01:01:42
问题描述   模拟程序型计算器,依次输入指令,可能包含的指令有 1. 数字:‘NUM X’,X为一个只包含大写字母和数字的字符串,表示一个当前进制的数   2. 运算指令:‘ADD’,‘SUB’,‘MUL’,‘DIV’,‘MOD’,分别表示加减乘,除法取商,除法取余   3. 进制转换指令:‘CHANGE K’,将当前进制转换为K进制(2≤K≤36)   4. 输出指令:‘EQUAL’,以当前进制输出结果   5. 重置指令:‘CLEAR’,清除当前数字 指令按照以下规则给出:   数字,运算指令不会连续给出,进制转换指令,输出指令,重置指令有可能连续给出   运算指令后出现的第一个数字,表示参与运算的数字。且在该运算指令和该数字中间不会出现运算指令和输出指令   重置指令后出现的第一个数字,表示基础值。且在重置指令和第一个数字中间不会出现运算指令和输出指令   进制转换指令可能出现在任何地方 运算过程中中间变量均为非负整数,且小于2^63。   以大写的’A’ 'Z’表示10 35 输入格式   第1行:1个n,表示指令数量   第2…n+1行:每行给出一条指令。指令序列一定以’CLEAR’作为开始,并且满足指令规则 输出格式   依次给出每一次’EQUAL’得到的结果 样例输入 7 CLEAR NUM 1024 CHANGE 2 ADD NUM 100000 CHANGE 8

进制转换

落爺英雄遲暮 提交于 2020-02-27 11:25:55
1、进制转换 二进制:由2个数字组成,有0 和 1 例: 0b101 八进制:由8个数字组成,有0,1,2,3,4,5,6,7 例: 0o127 十进制:有10个数字组成,有0,1,2,3,4,5,6,7,8,9 例: 250 十六进制:有16个数字组成,有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f(字母大小写都可以,分别代表10,11,12,13,14,15) 例:0xff 0Xff 0XFF 1.1、 二进制 转化成 十进制 例: 0b10100101 运算:1* 2^0 + 0* 2^1 + 1* 2^2 + 0* 2^3 + 0* 2^4 + 1* 2^5 + 0* 2^6 + 1* 2^7= 1 + 0 + 4 + 0 + 0 + 32 + 0 + 128 = 165 1.2、八进制 转化成 十进制 例: 0o127 运算:7*8^0 + 2*8^1 + 1*8^2 = 7+16+64 = 87 1.3、 十六进制 转化成 十进制 例: 0xff 运算:15*16^0 + 15*16^1 = 255 小练习: 转化成对应进制 723 => 2 654 => 2 723 => 8 654 => 8 723 => 16 654 => 16 1.4、 十进制 转化成 二进制 426 => 0b110101010 运算过程: 用426除以2