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)
上一篇 2026年4月16日 上午11:34
下一篇 2026年4月16日 上午11:40


相关推荐

  • 如何在JSP页面显示mysql数据库内容 (二)

    如何在JSP页面显示mysql数据库内容 (二)nbsp nbsp nbsp nbsp 用 Eclipsetomca 新建一个 JSP 页面 一 介绍了如何创建一个 web 程序和第一个 jsp 页面 以及 Eclipse 需要的一些必要配置 今天 我们重点说一下如何从数据库中查询数据 并且在 JSP 页面显示 nbsp nbsp nbsp nbsp 首先需要注意这样一个问题 创建的如果是 java 项目 只需要引入 mysql connector java 5 1 10 bin jar 就可以运行 java 项目 创建的

    2026年3月16日
    2
  • macos dock栏_苹果mac使用技巧

    macos dock栏_苹果mac使用技巧Dock栏就是Mac电脑屏幕下方的那一排快捷键,我们可以把自己常用的程序放到Dock上面,这样可以帮助我们快速的打开自己想要打开的文件和程序,默认情况下,OSX的Dock置于屏幕的底部。当你第一次进入MacOSX的桌面,Dock中内置了许多应用程序,怎么用好它?其实,我们不仅可以自定义Dock中显示的内容,而且你还可以调整Dock的大小、位置等等,下面给大家介绍几个关于Dock栏使用技巧,让大家使用Mac电脑更加得心应手。一、添加应用程序,文件夹和文件到Dock1.打开你的

    2025年8月27日
    7
  • Web.xml配置说明

    Web.xml配置说明1. web.xml配置详解:     &lt;web-app&gt; &lt;!–指定WEB应用的名字–&gt; &lt;display-name&gt;MyWeb&lt;/display-name&gt; &lt;!–WEB应用描述信息–&gt; &lt;description&gt;MyWeb demo&lt;/description&gt

    2022年6月17日
    36
  • R语言:逻辑回归算法的实现——glm函数

    R语言:逻辑回归算法的实现——glm函数在前文中 我们已经介绍过了逻辑回归算法的原理以及其 python 实现 具体请见逻辑回归算法及其 python 实现 本文将主要介绍逻辑回归算法的 R 语言实现 数据简介本文数据选择了红酒质量分类数据集 这是一个很经典的数据集 原数据集中 质量 这一变量取值有 3 4 5 6 7 8 为了实现二分类问题 我们添加一个变量 等级 并将 质量 为 3 4 5 的观测划分在等级 0 中 质量 为 6 7

    2026年3月18日
    2
  • Java面试-面向对象

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 Q1。什么是多态? 多态被简要描述为“一个接口,许多实现”。多态性是能够在不同上下文中为某事物赋予不同含义或用法的一…

    2021年6月23日
    103
  • 粘包问题怎么解决_包带粘手怎么处理

    粘包问题怎么解决_包带粘手怎么处理如何解决粘包问题粘包就是连续向对端发送两个或者两个以上的数据包,对端在一次收取中受到的数据包数量可能大于1个,当大于1个时,可能时几个包加上某个包的部分,这这干脆几个完整的包在一起。当然,也可能收到的数据只是一个包的部分,这种情况一般也叫做半包。无论是半包问题还是粘包问题,因为TCP是流式数据,所以其解决思路还是从收到的数据中把包与包的边界区分出来。如何区分,有以下三种办法。固定包长的数据包。固定包长,即每个协议包的长度都是固定的。假如我们规定每个协议包的大小都是64字节,每收满64字节,就取出来

    2022年8月11日
    11

发表回复

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

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