问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

char *怎样转成int

发布网友 发布时间:2022-05-01 05:56

我来回答

5个回答

热心网友 时间:2022-06-25 06:54

char*怎样无法转成int,int可以转成char*。

1.首先,在python命令窗口中键入int(12,2)。结果是一个错误。

2.改为24589。

3.将int()方法中的第一个参数字符串的数量更改为0和1。

4.如果希望将字符串转换为八进制数,请使用int()方法并传递第二个参数8。

5.将字符串值转换为decimal,将第二个参数传递给2,并返回相同的结果。

6.如果希望将字符串中的值转换为十六进制,并且字符串中的值不能超过常值。

热心网友 时间:2022-06-25 06:54

char *转int
也就是字符串转换为整数,这个是一个挺常用的功能了
对于十进制数,直接用atoi或者linux下支持的stringtoul一类的就可以
比如你说的"3210"用这类函数,就可以直接转成10进制的3210

不过,按照你说的3210转换成16进制的0x1032这个就不能算是常规转换了,转成同值16进制不说,高低位也反过来了
这个就比较麻烦,需要自己写转换函数

具体的方法,需要看你的转换规则
基本思路都是一样的
逐位读取字符串中的字符,并转换成对应16进制字符,比如'3'->0x3 'A'-> 0xa 'a'->0xa
等等
得到这些字符后,按照你需要的顺序,重排。 用移位(>> <<)加位或(|)操作可以做到
由于无法判断具体的转换规则 没办法给出通用的代码

对于"3210"->0x1032可以给一个参考例子

char *data = "3210";
int result = 0;
int j;
char buffer[5];
strcpy(buffer, data);//data是常量字符串,无法改变值,放到buffer里操作
for(j = 0; j <4; j ++)
{
if(buffer[j] <= '9' && buffer[j] >= '0')
buffer[j] -= '0';
else if(buffer[j] <= 'F' && buffer[j] >= 'A')
buffer[j] -= 'A'-0xa;
else if(buffer[j] <= 'f' && buffer[j] >= 'a')
buffer[j] -= 'a'-0xa;
else printf("unknow char %c\n", buffer[j]);
}
result = (buffer[2]<<12)|(buffer[3]<<8)|(buffer[0]<<4)|buffer[1];
printf("result is 0x%4x\n", (unsigned)result);

供参考 望有帮助

热心网友 时间:2022-06-25 06:55

你是强制转换吗?
0x1032是16进制啊,10进制的数据总么会有0x呢?
如果你是进行的强制转换,那结果一定是错的,因为字符和整数进行转换都是按ASCII编码进行转换的。ASCII中只有单个字符的编码,字符串要被转换为整型都需要单个单个的进行转换。
但很多时候,我们要将一个数字型的字符串转换为相对应的整型数据,这要总么转呢。强制转换一定是不行的,因为强制转换按内存模型来匹配的,只是将一个数据的内存套到要转换的数据内存中。
这时候我们就要用相应的算法来处理,至于这个算法有很多,由于本人水平有限,还是不给你现丑了,这里我告诉你几个库函数,这些库函数在stdlib.h头文件中
1. float atof(const char *str);:字符串转浮点型函数,即将一个"123.12"转换为float类型的123.12
2. int atoi(const char *str); 字符串转整型函数
3. long atol(const char *str); 字符串转长整型函数

这里给你一个示例吧:

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char *str="12345.67";
long result;
result=atol(str);
printf("string=%s\nlong =%ld\n",str,result);
getch();
return 0;
}
//这个示例是将一个char *str="12345.67";类型的数据转换为对应的浮点类型数据追问那个0x1032中的0x我只是说明是十六进制,是不是没有这样转换的函数?

追答

        10进制转为16进制有什么难的呢?网上有大量进制转换函数代码,随便找一个加进去就可以了。如果只是要在输出时转换为16进制,库中有很多格式化输出函数,printf就可以进行格式转换输出。

        另外进制是可以进行隐式的转换的,看下图(是用C++的代码)

//由此可以见你只要将这个数以16进制赋给一个整型变量,系统可以自动转换为一个10进制的数。

热心网友 时间:2022-06-25 06:56

主要使用atoi函数,具体如下:

为验证x确实是整型,还计算了1234567+1=1234568,具体如上!

热心网友 时间:2022-06-25 06:56

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main()
{

char * data = "3210";

int int_data[4];
int hex_data;
int length;

char *c;
c = data;
int i;

length = strlen(data);

if(length!=4)
{
printf("the string must be four\n");
exit(0);

}

for(i = 0;i < length;i++)
{
int_data[i] = int(*c -'0');
c++;

printf("%d\n",int_data[i]);
}

hex_data = int_data[2] *pow(16.0,3) + int_data[3]*pow(16.0,2) + int_data[0] *pow(16.0,1)+ int_data[1];

printf("0x%x ====%d(10)\n",hex_data,hex_data);

return 0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
石料加工服务可以全部交给第三人完成吗 山东沃尔德集团集团所辖公司介绍 齐鲁银行无忧贷和市民贷哪个好 什么叫补按揭 后按揭贷款什么意思 买房者续按揭有什么危害 加按揭是什么意思 八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 唐代诗坛上名家辈出,涌现了哪些优秀的诗人? C++中char和unsigned char的转换 做微商好友太少,怎么办?有什么好的方法?我告诉你 “熟读唐诗三百首”的下一句是什么? VC程序中unsigned char型变量转unsigned int型变量时,编译生成的代码为什么不用movzx? 新手做微商代理如何加好友有什么方法和技巧 文艺复兴时,为何在文学领域的名家名作辈出 c语言中,怎样把内容为数字的char转换为int? 为什么明清两代叠石名家辈出? 如何做好微商,做微商的技巧和方法 流派纷呈,名家辈出用英语怎么翻译? C语言unsigned char 是否存在自动转换?如果是,是转成int还是unsigned in 有的同学认为中国文学名家辈出,没有必要读外国作品,对吗 51单片机中C语言int能转换为unsigned char 指针类型吗?怎么转换? 微商必备方法技巧.微商怎么找客源怎么加好友 char到int的转换 不简单的正义坊,人才辈出是什么意思? 名人辈出是褒义词还是贬义词? C语言中把unsignedchar型数据赋值给int型数据会不会出问题 名人辈出是成语吗? 初始化 无法从unsigned char 转换为int 中国是诗的国度诗的历史源远流长名家辈出()()()是文学史上三朵奇葩 纵观历史,为什么整个宋朝文人辈出? 单片机中unsigned char 和unsigned int的区别 形容名人辈出的词语 在 c语言中int long unsigned 和 char这四种类型数据的转换规律是什么? 三十载乱世为何大师辈出? 名人的定义是什么? 中国是诗的国度诗的历史源远流长名家辈出什么什么什么是文学史上的三朵奇葩 涨停股换手率达到20说明什么 香肠派对里冥王的隐身能看见吗? 投诉歌华有线给未成年人播放香肠派对和王者荣耀的动画片? 香肠派对中过新年是哪一级? 为什么香肠派对上铂金那么难打? 香肠派对电影谁有? 青椒皮蛋怎么做才不苦 皮蛋蘸醋吃然后吃菜都是苦的什么原因啊? 弱问题,在sql中向上取整的函数是什么 日本多地争夺“饺子之都”名号,你觉得有必要争吗? 日本多地争夺“饺子之都”名号,争夺这一名号有何好处?