精华内容
下载资源
问答
  • C语言实现16进制转10进制(暂不...3.将数组元素的下标当做16进制的权 4.将字符转换成数字 * 16的权 代码实现 int fun(int n) //递归函数实现16的N次方 { if(n==0) return 1; else return 16*fun7(n-1); } void ma

    C语言实现16进制转10进制(包含小数部分)

    想法:

    通过按权展开的方法:
    (BC)H=11x16^1 + 12x16^0

    步骤:

    1.用字符数组来放16进制
    2.将数组元素逆序排放
    3.将数组元素的下标当做16进制的权
    4.将字符转换成数字 * 16的权

    代码实现

    float fun(int n)   //递归函数实现16的N次方
    {
        if(n==0)
            return 1;
        else
            return  16*fun(n-1);
    }
    void main()
    {
       char s[20],*s1=s,*s2=s,*s3=s,t;
       int num;
       float sum=0.0;
         gets(s);
       while(*s1) s1++;
       for(num=s1---s;s2<s1;s2++,s1--)      //将数组元素逆序排放
               t=*s2,*s2=*s1,*s1=t;//数组元素的下标当做16进制的权
       while(*s3)
       {
           if(*s3=='.')
               break;
           s3++;
       }
       for(s1=s;s1<s+num;s1++)
         {
            if(s1-s3<0&&*s3=='.')                  //求小数部分,*s3='.',说明有小数
            {
                if(*s1>=48&&*s1<=57)              //根据小数点的下标确定16的权
                    sum=sum+(*s1-48)/fun(s3-s1);   //将字符转换成数字 * 16的权
                else  if(*s1>='A'&&*s1<='Z')
                    sum=sum+(*s1-55)/fun(s3-s1);
                else  if (*s1>='a'&&*s1<='z')
                    sum=sum+(*s1-87)/fun(s3-s1);
            }
            else  if(*s3=='.')                        //求整数部分,*s3='.',说明有小数
            {
                if(*s1>=48&&*s1<=57)                 //根据小数点的下标确定16的权
                    sum=sum+(*s1-48)*fun(s1-s3-1);    //将字符转换成数字 * 16的权
                else  if(*s1>='A'&&*s1<='Z')
                    sum=sum+(*s1-55)*fun(s1-s3-1);
                else  if (*s1>='a'&&*s1<='z')
                    sum=sum+(*s1-87)*fun(s1-s3-1);
            }
            else
            {
                if(*s1>=48 && *s1<=57)         //将字符转换成数字 * 16的权
                    sum=sum+(*s1-48)*fun(s1-s);
                else  if(*s1>='A'&&*s1<='Z')
                    sum=sum+(*s1-55)*fun(s1-s);
                else  if (*s1>='a'&&*s1<='z')
                    sum=sum+(*s1-87)*fun(s1-s);
            }
        }
        printf("%f",sum);
    }
    

    备注

    2020专接本已经结束,现出一些计算机专业,自己专接本备考期间搜集到的以及用的资料以及试题
    需要的同学可以看看,有jxn,jt,sx的一些例题
    在这里插入图片描述

    展开全文
  • 进制转换--2进制转16进制

    千次阅读 2019-04-02 20:14:20
    题目描述 二进制数据是用0和1两个数码来表示...十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制.一般用数字0到9和字母A到F(或a~f)表示,其中:a~f表示10~15,这些称作十六进制数字. 请将给定的二进制...

    题目描述

    二进制数据是用 0 和 1 两个数码来表示的数.它的基数为 2 ,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现.
    十六进制(简写为hex或下标 16 )在数学中是一种逢 16 进 1 的进位制.一般用数字 0 到 9 和字母 A 到 F(或 a ~ f )表示,其中: a ~ f 表示 10 ~ 15 ,这些称作十六进制数字.
    请将给定的二进制数转为十六进制数,英文字母使用小写形式.

    输入

    第一行一个正整数 T, 代表有 T 组测试数据. (1≤T≤10).
    接下来 T 行,每行输入一串只包含 0 和 1 的字符串(无前导 0),字符串长度:1≤length≤106.

    输出

    对于每组测试样例,输出转化后的十六进制数并单独占一行.

    样例

    input

    2
    1
    10
    

    output

    1
    2

    思路:

    刚开始的想法是输入一个字符串,然后从后往前依次转换,先转换成十进制,然后再以十六进制数出,最后发现还是想的太简单了,数据范围有点大,转换成十进制有可能溢出。所以按照2进制转16进制每四位2进制对应一位16进制来转换就过了。

    参考代码:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    char str[1000009];
    int num[1000009];
    int main()
    {
        int t;
        cin>>t;
        while(t--)
        {
            cin>>str;
            int len=strlen(str);
            int cnt=0;
            int ans[10000];
            memset(ans,0,sizeof(ans));
    
            for(int i=0;i<len;i++)
                num[i]=str[i]-'0';
    
            for(int i=len-1;i>=0;)
            {
                int f=1,sum = 0, n = 4;
                while(n--)
                {
                    if(i<0)
                        break;
                    sum+=num[i]*f;
                    f*=2;
                    i--;
                }
                ans[cnt++]=sum;
            }
    
            for(int i=cnt-1;i>=0;i--)
                printf("%x",ans[i]);
            printf("\n");
        }
        return 0;
    }
    

     

    展开全文
  • 我的结构体声明为 struct Cezhanobservation { ...但是调试的时候数组的下标变为了16进制,求大神指点[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/83.gif][/img]
  • 二进制数据转化为16进制字符串(中间加的‘:'还有‘;'是为了查看下标,也可以自行去掉): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...

    二进制数据转化为16进制字符串(中间加的‘:'还有‘;'是为了查看下标,也可以自行去掉):

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    public static String bytesToHexString(byte[] src){

     StringBuilder stringBuilder = new StringBuilder();

     if (src == null || src.length <= 0) {

      return null;

     }

     for (int i = 0; i < src.length; i++) {

      int v = src[i] & 0xFF;

      String hv = Integer.toHexString(v);

     

      stringBuilder.append(i + ":");

     

      if (hv.length() < 2) {

       stringBuilder.append(0);

      }

      stringBuilder.append(hv + ";");

     }

     return stringBuilder.toString();

    }

    16进制字符串转化为二进制数据:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    public static byte[] hexStringToByte(String hex) {

      int len = (hex.length() / 2);

      byte[] result = new byte[len];

      char[] achar = hex.toCharArray();

      for (int i = 0; i < len; i++) {

       int pos = i * 2;

       result[i] = (byte) (toByte(achar[pos]) << 4 | toByte(achar[pos + 1]));

      }

      return result;

     }

      

     private static byte toByte(char c) {

      byte b = (byte) "0123456789abcdef".indexOf(c);

      return b;

     }

    展开全文
  • 16进制转10进制 String转换为AttributedString import Foundation extension String { public func calcuateLabSizeWidth(font: UIFont, maxHeight: CGFloat) -> CGFloat { let attributes = ...

    String通过下标获取子串

    extension String {
        func index(_ offset: Int) -> Index {
            return self.index(startIndex, offsetBy: offset)
        }
        func substring(from: Int) -> String {
            let fromIndex = index(from)
            return String(self[fromIndex...])
        }
        func substring(to: Int) -> String {
            let toIndex = index(to)
            return String(self[..<toIndex])
        }
        func substring(start: Int, end: Int) -> String {
            let startIndex = index(start)
            let endIndex = index(end)
            return String(self[startIndex..<endIndex])
        }
    }
    

    计算字符串的宽高
    16进制转10进制
    String转换为AttributedString

    import Foundation
    
    extension String {
        
        public func calcuateLabSizeWidth(font: UIFont, maxHeight: CGFloat) -> CGFloat {
            let attributes = [kCTFontAttributeName: font]
            let norStr = NSString(string: self)
            let size = norStr.boundingRect(with: CGSize(width: CGFloat(MAXFLOAT), height: maxHeight), options: .usesLineFragmentOrigin, attributes: attributes as [NSAttributedStringKey : Any], context: nil)
            return size.width
        }
        
        public func calcuateLabSizeHeight(font: UIFont, maxWidth: CGFloat) -> CGFloat {
            let attributes = [kCTFontAttributeName: font]
            let norStr = NSString(string: self)
            let size = norStr.boundingRect(with: CGSize(width: maxWidth, height: CGFloat(MAXFLOAT)), options: .usesLineFragmentOrigin, attributes: attributes as [NSAttributedStringKey : Any], context: nil)
            return size.height
        }
    
        public func transform16To10() -> Int {
            var num = self
            if num.hasPrefix("0x") || num.hasPrefix("0X") {
                num.remove(at: num.index(from: 1))
            }
            let str = num.uppercased()
            var sum = 0
            for i in str.utf8 {
                sum = sum * 16 + Int(i) - 48
                if i >= 65 {
                    sum -= 7
                }
            }
            return sum
        }
        
        public func toAttributedString(color: UIColor = .white) -> NSMutableAttributedString {
            let str = NSMutableAttributedString(string: self)
            let paragraphStyle = NSMutableParagraphStyle()
            paragraphStyle.lineSpacing = 5
            let dic: Dictionary<NSAttributedStringKey, Any> = [NSAttributedStringKey.foregroundColor: color,
                                     NSAttributedStringKey.paragraphStyle: paragraphStyle];
            str.setAttributes(dic, range: NSMakeRange(0, self.count))
            return str
        }
    
    }
    

    使用正则验证字符串的合法性(也可以定义成属性的形式)

    extension String {
        func isLegalNickName() -> Bool {
            let pattern = "^[A-Za-z][A-Za-z0-9]*$"
            return NSPredicate(format: "SELF MATCHES %@", pattern).evaluate(with: self)
        }
        func isPasswordString() -> Bool {
            let pattern = "^[0-9]*$"
            return NSPredicate(format: "SELF MATCHES %@", pattern).evaluate(with: self)
        }
        func isNumberString() -> Bool {
            let pattern = "^[0-9.]*$"
            return NSPredicate(format: "SELF MATCHES %@", pattern).evaluate(with: self)
        }
    }
    

    URL参数解析

    extension String {
        func containsParam(key: String) -> Bool {
            return getUrlStringParam(paramKey: key) == "" ? false : true
        }
        private func getUrlStringParam(paramKey: String) -> String {
            guard let params = self.components(separatedBy: "?").last else {
                return ""
            }
            var paramValue = ""
            params.components(separatedBy: "&").forEach { (para) in
                if let key = para.components(separatedBy: "=").first,
                    let value = para.components(separatedBy: "=").last,
                    key == paramKey {
                    paramValue = value
                }
            }
            return paramValue
        }
    }
    
    展开全文
  • 单测试点时限:1.0 秒 内存限制:512 MB 二进制数据是用0和1两个数码来表示的数....十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制.一般用数字0到9和字母A到F(或a~f)表示,其中:a~f表示10~1...
  • 题目:十进制数12345用32位补码整数和32位浮点数(IEEE754标准)表示的结果各是什么(用16进制表示) 十进制数12345的32位补码整数为:00003039H 十进制数12345的32位浮点数为:4640E400H 解析: (1)十进制数...
  • 思路:累除,从16进制的个位开始得到。因此从数组s的末位下标9开始,逐个往前填。最后再把填的元素 提到下标0开始的位置。 void f (long int x, char *p) { if (x<0){ *p = '-'; p++; x = -1*x; } if (x...
  • 问题描述 ...//这是16进制转化为10进制的结果 j=0; while(sum!=0) { res[j]=sum%8; j++; sum=sum/8; } for(int t=j-1;t>=0;t--) printf("%d",res[t]); printf("\n"); } }
  • //n用作下标,temp为整数每次除以的16的余数 string a[100]; //用来存放转换后的数 cin>>m; while(m>0){ n++; temp=m%16; if(temp>9){ a[n]=temp-10+'A';//将字母存入数组a }else{
  • 编程练习:进制转换(16→10)

    千次阅读 2020-01-30 14:36:38
    思路:通过ASCII码获取整型数字存入数组,十六进制:0-9 A-F或a-f(0~15...//进制转换:16进制数 →十进制 //注意输入的范围 //16进制:0-9 A-F(0~15) //逐个字符存入数组中getchar #include<stdio.h> #inc...
  • 题目描述: 绘制任意进制的乘法表类似于: 算法思想: ...// 不局限于16进制内 乘数毕竟是数值不是字符,怎么表示左边数相乘呢?利用下标(c[i])。 int tmp=j*i; printf("%c*%c=",c[j],c[i]); if(tm
  • 十六进制

    千次阅读 2009-07-01 11:46:00
    十六进制维基百科,自由的百科全书跳转到: 导航, 搜索...例如十进制数79,在二进制写作01001111,在16进制写作4F(4 = 0100, F = 1111)。在历史上,中国曾经在重量单位上使用过16进制,比如,规定16两为一斤。现在的
  • 基本姿势一:十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制。一般用数字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15,这些称作十六进制数字。基本姿势二:从小数点开始,向左右二边按“四位一段...
  • 例:输入一个十进制正整数,将其转换为...int型占16个二进制位 二进制数的最高位是符号位,不参与转换计算 #include<stdio.h> #include<stdlib.h> int main() { int i,j,n,m; int a[16]= { 0/*将数组
  • 要将十进制整数n转换为b进制,将n作为被除数b为除数取余记为rema,商记为consult,每一次的取余所得值赋值给另一数组result,从下标为0到count,count为记录递归的次数同时为存放转换后所得值的位数,最后顺序输出...
  • 现实生活中,我们最常见的数为十进制数...以0x开始的数据表示16进制,计算机中每位的权为16,即(16进制)10 = (10进制)1×16。注:这里的0是数字0,不是字母O!十六进制(简写为hex或下标16)在数学中是一种逢16进1的进...
  • 进制转换十六进制

    2017-04-03 17:01:26
    #include using namespace std; int main() { int d[20]={0}; int i=0; //用来表示d数组的下标 int num=0;... char h[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; c
  • 进制转换工具类

    2021-03-12 16:34:26
    * 例如十进制数57,在二进制写作111001,在16进制写作39。<br> * 像java,c这样的语言为了区分十六进制和十进制数值,会在十六进制数的前面加上 0x,比如0x20是十进制的32,而不是十进制的20<br> * * ...
  • 编程题:进制转换

    2020-03-14 20:59:27
    其次我们应该知道一些有关16进制的知识:十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制。一般用数字0到9和字母A到F(或a-f)表示,其中:A-F表示10~15,这些称作十六进制数字。 清楚这些...
  • 进制转换为2进制

    2014-11-11 00:19:15
    int a[16]={0}; int pos=0;//下标 int main() { int n,j=2; printf("请输入一个十进制的数:\n");  scanf("%d",&n);  while(n)  { a[pos]=n%2;  pos++;  n=n/2;      }  int
  • Java进制转换工具类

    千次阅读 2017-07-12 17:09:12
    import java.nio.charset.Charset;... * 例如十进制数57,在二进制写作111001,在16进制写作39。<br> * 像java,c这样的语言为了区分十六进制和十进制数值,会在十六进制数的前面加上 0x,比如0x20
  • 进制转换知识点

    2019-04-10 16:24:00
    为了区别不同数制表示的数,通常用右括另外下标数字或字母表示数制,十进制数用D表示,二进制用B表示,十六进制数用H表示,八进制用O表示 进制也就是进制位,对于接触过电脑的人来说应该都不陌生,我们常用...
  • 十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制。一般用数字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15,这些称作十六进制数字。0x为十六进制的表示符号(也可用字母H后缀表示),一个数如果要...
  • 书写一个函数, 随机生成十六进制颜色值比如:#ff6600 16 进制指0 - f之间的数。 //1.存储 0-f 十六个字符 //2.生成一个随机字符,生成六次 function randomColor() { var arr = ['0', '1', '2', '3', '4', '5...
  • 把13进制转换成16进制。 输出格式:输出的时候第一个位置输出#,13进制转换成16进制时,若只有一位数字前面补0。有英文字母时以大写形式输出 英语 radix:进制;基数;鼻根 decimal values:十进制值 思路 使用string...
  • B. Asia区域制 单测试点时限:1.0 秒 内存限制:512 MB 二进制数据是用0和1两个数码来表示的数....十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制.一般用数字0到9和字母A到F(或a~f)表示,其中:a~...
  • 2798(基础题)进制转换

    2018-07-03 16:42:08
    poj 百练 2798(基础题)回顾二进制到16进制的方法可以直接做也可以从二转到10,,10转到16看似容易实则很需要细心,,如何摆弄下标位置,如何计算边界,如何存储结果 #include &lt;fstream&gt;#include &lt...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 258
精华内容 103
关键字:

16进制下标