char类型转换成int_char 转int

char类型转换成int_char 转int字符串“1121“转换成整型1121#include<stdio.h>#include<string.h>voidCharToInt(int*dest,char*src,longlen);intmain(void){unsignedchar*str=”1121″;intvalue,str_len…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

字符串“1121“转换成整型1121

#include <stdio.h>
#include <string.h>

void CharToInt(int *dest, char *src, long len);

int main(void)
{ 
   
        unsigned char *str = "1121";
        int value, str_len;

        str_len = strlen(str);
        CharToInt(&value,str,str_len);
        printf("%d\n",value);
}
/*转换后数值的地址,传入的字符串,字符串长度*/
void CharToInt(int *dest, char *src, long len)
{ 
   
        int i;
        int value_temp = 0;

        for(i=0;i<len;i++)
        { 
   
                value_temp = value_temp*10 + (*(src+i)-'0');
        }
        *dest = value_temp;
}
/*运行*/
1121

一个寄存器(2个字节)存储的数据转换成int型(0x1121 -> ???)

注:重要的一点,要判断高字节在前还是低字节在前。

#include <stdio.h>

#define HIGH 0
#define LOW 1

void CharToInt(int *, char *, long , int );

int main(void)
{ 
   
        unsigned char str[] = { 
   0x11,0x21};
        int value, str_len;

        str_len = sizeof(str);
        CharToInt(&value,str,str_len,HIGH);
        printf("%d\n",value);
}
/*转换后数值的地址,传入的字符串,字节个数,高或低字节在前*/
void CharToInt(int *dest, char *src, long len, int highlow)
{ 
   
        int i, j;
        int value_temp = 0;

        if(highlow == HIGH)
        { 
   
                j = len-1;
                for(i=0;i<len;i++)
                { 
   
                        value_temp |= ((*(src+i))&0xff)<<(8*j); 
                        j--;
                }
        }
        else
        { 
   
                for(i=0;i<len;i++)
                { 
   
                        value_temp |= ((*(src+i))&0xff)<<(8*i);
                }
        }
        *dest = value_temp;
}
/*运行*/
4385

填入十六进制0x1121进去,转换成十进制确实是4385
在这里插入图片描述在这里插入图片描述
!!!慢着,先别走,突然想到一个非常简单方便的方法。

#include <stdio.h>

union CharInt
{ 
   
        unsigned char str[2];
        short int value;
};

int main(void)
{ 
   
        union CharInt I;
        I.value = 0;
        I.str[1] = 0x11;
        I.str[0] = 0x21;

        printf("%d\n",I.value);
}
/*运行*/
4385

程序真的是极简啊,用联合类型有时候用来转换数据类型是非常方便实用的,其中的原理就是因为联合类型共用一个内存空间咯,但是要注意它是小端模式存储的,低字节对应低地址。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188547.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • InvocationHandler中invoke方法中的第一个参数proxy的用途

    InvocationHandler中invoke方法中的第一个参数proxy的用途最近在研究 Java 的动态代理时对 invoke 函数的第一个参数一直不理解它的用处 某度搜索也搜不出结果 最后终于在 stackoverflo 上找到了答案 这是原文的链接 http stackoverflo com questions understandin proxy arguments of the invoke method of java lang reflec

    2025年8月19日
    0
  • mysql操作命令梳理(4)-中文乱码问题

    mysql操作命令梳理(4)-中文乱码问题

    2022年2月23日
    57
  • mysql 的longtext类型对应java什么类型?

    mysql 的longtext类型对应java什么类型?在mysql的shu数据库中我们存的是小图片的base64位的编码信息。那么在java中对应什么类型呢?`cardPic`longtextCOLLATEutf8mb4_unicode_ciCOMMENT’图片正面’,`cardPic1`longtextCOLLATEutf8mb4_unicode_ciCOMMENT’图片背面’,具体代码查看:https://suxi…

    2022年5月14日
    54
  • 《老漏洞复现与分析篇》 – 其一 – shift后门

    《老漏洞复现与分析篇》 – 其一 – shift后门引言因为本菜鸡的博客没什么文章素材,所以想开一个新文章类别,本来想整一个漏洞分析和复现的,无奈由于实力不允许,只能再前面加一个“老”字,整一点多年前的老漏洞拿来复现和分析。俗话说得好,要善于总结前人的经验和智慧,才能在自己的前进道路上走得更快。本系列在我能理解的范围内我都会详细讲解,我不能理解的就靠收集网上的资料了,引用会注明来源和作者,如有侵权请联系我删除。那么废话…

    2022年9月16日
    2
  • unix命令netstat[通俗易懂]

    unix命令netstat[通俗易懂]Netstat命令用于显示各种网络相关信息,如网络连接,路由表,接口状态(InterfaceStatistics),masquerade连接,多播成员(MulticastMemberships)等等。

    2022年5月31日
    34
  • 电阻色环表色环电阻识别表_电阻的色环识别方法

    电阻色环表色环电阻识别表_电阻的色环识别方法色环电阻色环电阻是电子电路中最常用的电子元件,色环电阻就是在普通的电阻封装上涂上不一样的颜色的色环,用来区分电阻的阻值。保证在安装电阻时不管从什么方向来安装,都可以清楚的读出它的阻值。色环电阻的基本单位有:欧姆(Ω)、千欧(KΩ)、兆欧(MΩ)。1兆欧(MΩ)=1000千欧(KΩ)=1000000欧(Ω)。平常使用的色环电阻可以分为四环和五环,通常用四环。其中四环电阻前二环为数字,第三环表

    2025年6月11日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号