函数-C语言中关于进制转化问题

问题描述

C语言中关于进制转化问题

请问如何用htoi函数将十六进制组成的字符串转化成十进制数(前面可能包含0X或0x)

解决方案

C语言 进制的转化
黑马程序员---C语言-进制问题
c语言的进制问题

解决方案二:

int htoi(const char *s)
{
if( !s )return 0;

if( *s == '0' )
{
    s++;
    if( *s == 'x' || *s == 'X' )s++;
}

int n = 0;
while( *s )
{
    n <<= 4;
    if( *s <= '9' )
        n |= ( *s & 0xf );
    else
        n |= ( (*s & 0xf) + 9 );
    s++;
}
return n;

}

解决方案三:

你自己写一个不就行了,每次读1个字节,16进制只有0~f,可以从字符串的头开始读取,比较好判断,遇到X就说明数据开始了,每次读1个字节,下次在读的时候
就把之前读出来的乘以16,最后读到字符串完,就得到你要的数了。

时间: 2024-09-19 09:24:25

函数-C语言中关于进制转化问题的相关文章

浅议Oracle中的进制转换

oracle|转换 作者: Eygle 出处: BLOG 进制转换是开发中经常需要用到的,本文简单介绍几种常用的进制转化方法. 一 16进制转换为10进制 可以通过to_number函数实现 SQL> select to_number('19f','xxx') from dual; TO_NUMBER('19F','XXX') ---------------------- 415 SQL> select to_number('f','xx') from dual; TO_NUMBER('F',

c语言-C语言求教,进制转换代码

问题描述 C语言求教,进制转换代码 请大家帮我看看我的程序有什么错误,感激不尽! /* num:数字 i:进制数 k:总位数 */ #include"stdio.h" #include"math.h" int firsttext(int num,int i){ int k; for(k=1;;k++){ if(num<((int)pow((float)i,(float)k))) break; } --k; return k; } int printouteve

Java I/O : Java中的进制详解

作者:李强强 上一篇,泥瓦匠基础地讲了下Java I/O : Bit Operation 位运算.这一讲,泥瓦匠带你走进Java中的进制详解. 一.引子 在Java世界里,99%的工作都是处理这高层.那么二进制,字节码这些会在哪里用到呢? 自问自答:在跨平台的时候,就凸显神功了.比如说文件读写,数据通信,还有Java编译后的字节码文件.下面会有个数据通信的例子哦. Java对对象实现Serializablle接口,就可以将其转化为一系列字节,而在通信中,不必要关系数据如何在不同机器表示和字节的顺

Python中不同进制的语法及转换方法分析_python

本文实例讲述了Python中不同进制的语法及转换方法.分享给大家供大家参考,具体如下: 不同进制的书写方式 ① 八进制(Octal) 0o377 ② 十六进制(Hex) 0xFF ③ 二进制(Binary) 0b11111111 不同进制之间的转换 Python提供了三个内置的函数,可以用来在不同进制间做转换. >>> oct(255), hex(255), bin(255) ('0o377', '0xff', '0b11111111') 还可以使用int函数,把字符串转成数值 >

JS中的进制转换以及作用_javascript技巧

js的进制转换, 分为2进制,8进制,10进制,16进制之间的相互转换, 我们直接利用 对象.toString()即可实现: 运行下面代码 //10进制转为16进制 (10).toString(16) // =>"a" //8进制转为16进制 (012).toString(16) // =>"a" //16进制转为10进制 (0x16).toString(10) // =>"22" //16进制转为8进制 (0x16).toSt

四位十六进制数-俄罗斯方块中的进制数

问题描述 俄罗斯方块中的进制数 我是一个菜鸟,我想知道为什么俄罗斯方块游戏中要用一个十六进制数表示一个俄罗斯方块,而且为什么十六进制数可以转换成二进制是数组形式 解决方案 一个俄罗斯方块可以在一个4x4的形状中表示 比如 I型 .xxx .xxx .xxx .xxx L形 .xxx .xxx ..xx xxxx T形 ...xx x.xx x.xx xxxx Z形 ..xx x.xx x..x xxxx 方块形 xxxx x..x x..x xxxx 等等 每个点有图像,无图像两个状态可以用0

查找字符串数组中16进制数,并转换【原创】

  查找字符串数组中16进制数,并转换 #include <stdio.h> #include <stdlib.h> #include <string.h> void string_to_hex(unsigned char* input, int input_len, unsigned char* output, int output_len) { unsigned char tmp; int i; if (input_len > output_len*2) re

Delphi实现把10进制转换成16进制的函数进制转化

  delphi中有直接把10进制转换成16进制的函数: function IntToHex(Value: Integer; Digits: Integer): string; overload;  function IntToHex(Value: Int64; Digits: Integer): string; overload; unit uConversion; interface uses SysUtils,Math; type TConversion = class public //

c语言-实现b进制的加法,我是先把两个数转化为十进制,然后求和在转换为b进制,可是一直出现问题,调试

问题描述 实现b进制的加法,我是先把两个数转化为十进制,然后求和在转换为b进制,可是一直出现问题,调试 #include #include int main() { int a; char str1[40], str2[40]; while (scanf("%d%s%s", &a,str1,str2) != EOF) { int temp1 = 0, c1 = 1; int length1 = strlen(str1); printf("lenrht1=%dn&quo