首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将int转换为C中的4字节字符数组

将int转换为C中的4字节字符数组
EN

Stack Overflow用户
提问于 2012-07-11 11:07:53
回答 3查看 9.5K关注 0票数 1

可能重复: Converting an int into a 4 byte char array (C)

使用动态C程序(语言是C),我试图将一个int转换成一个字节数组--4位长。到目前为止,我已经在网上找到了一些例子。然而,似乎没有人为我工作。在打印正确的字节数时,我遇到了一个持续的问题,但是由于某种原因,它们被重复了两次。我提供了以下守则:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
void main(){
 int a=1379;
 int i=0;
 unsigned char value [4];

value[3] = (byte) (a & (0xFF));
value[2] = (byte) ((a >> 8) & 0xFF);
value[1] = (byte) ((a >> 16) & 0xFF);
value[0] = (byte) ((a >> 24) & 0xFF);
//convert int values to bytes by placing them in a char buffer

for(i=0;i<4;i++){
 printf("%d",value[i]);
 printf(", ");
 }
printf("\n");
}

例如,使用这个值,程序打印"5,99,5,99“,而它应该打印"0,0,5,99”。谢谢你的帮助。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-11 11:22:11

几乎可以肯定的是,"Dynamic“是一个int为16位的实现,这对于C来说是完全”合法的“。如果int是16位,任何超过16位的移位都是模-16,所以第二个移位重复前两个。

票数 4
EN

Stack Overflow用户

发布于 2012-07-11 13:18:15

您需要将int变量中的位复制到char数组中。您可以简单地使用memcpy这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
#include <string.h>

void split(int val, unsigned char *arr) {
    memcpy(arr, &val, sizeof(int));
}

int main() {
    unsigned char bytes[4];
    split(1379, bytes);
    printf("%d, %d, %d, %d\n", bytes[0], bytes[1], bytes[2], bytes[3]);
}
票数 1
EN

Stack Overflow用户

发布于 2012-07-11 11:29:08

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
#include <string.h>

int main(void){
 int a=1379;
 unsigned bot,top ;
 unsigned char value [sizeof a];

 memcpy (value, &a, sizeof value);

 /* You can omit this loop if you are on a big-endian machine */
#if LITTLE_ENDIAN
 for (bot =0, top = sizeof value; --top > bot; bot++) {
    unsigned char tmp;
    tmp = value[bot];
    value [bot] = value[top];
    value[top] = tmp;
    }
#endif

for(bot=0;bot < sizeof value;bot++){
 printf("%u", (unsigned int) value[bot]);
 printf(", ");
 }
printf("\n");
return 0;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11439700

复制
相关文章
int转换为char数组_C语言将整数转化为字符串
如int i=1;在程序中直接将强制将i转换成char类型char a=(char)i,会发现a并不是’1’而是’\0001′,原因是在将i转换成char时,默认的会把i的值当成ASCII值,这样a的值就是’\0001’了
全栈程序员站长
2022/11/03
3.3K0
char转换为数字_char字符转int
刷题遇到一个考点是 char型数字 转 int 进行计算的问题。一看就会,一做就错,显然是在这里的认识薄弱了。将一番搜索的结果记录下来,以备再忘来打脸。
全栈程序员站长
2022/11/10
4.2K0
将tensor转换为图像_tensor转int
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/07
11.5K0
java int转byte数组(socket字节序)
java int转byte数组 int 转 byte[]   低字节在前(低字节序) 1 public static byte[] toLH(int n) { 2 byte[] b = new byte[4]; 3 b[0] = (byte) (n & 0xff); 4 b[1] = (byte) (n >> 8 & 0xff); 5 b[2] = (byte) (n >> 16 & 0xff); 6 b[3] = (byte) (n >> 24 & 0xff);
聚优云惠
2022/05/25
2.8K0
java字符串类型转换为int_java中double转int类型
由于double的范围比int数据类型大,所以当int值被赋给double时,java会自动将int值转换为double。
全栈程序员站长
2022/08/03
4.3K0
mysql整型转字符串_java中如何将字符串转换为字符数组
select * from A order by cast(name as unsigned);
全栈程序员站长
2022/09/27
23.4K0
c++char和int转换_int转换为char数组
在学习c++,opencv时,想读取有规律的一些图像,图像名时有规律的数字,要用到int 转char* 类型,可以写代码,但是为了方便和整洁打算用c++自带的函数写成。 在转换时要用char []类的,因为在这里我们不能初始化char*所以要分配一块内存空间。
全栈程序员站长
2022/11/01
1.2K0
c++如何将字符串转为数组(将字符串转换为数组)
string [] imgArr=imgData.Split(new char[]{‘,’});
全栈程序员站长
2022/07/29
7.1K0
outputstream转byte数组_int类型转换为byte类型
Java中将inputstream输入流转换成byte[]字节数组
全栈程序员站长
2022/11/08
7.8K0
javachar转int_c中int转char
A:因为char是JAVA中的保留字,与别的语言不同,char在JAVA中是16位(bit)(JAVA用的是unicode,2个字节(byte))。不过八位的ASCII码包含在unicode中(0~127)。
全栈程序员站长
2022/11/11
1.7K0
python中字符串类型转换为数字类型_python字符串转int
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/07
5.4K0
integer转换为string_go 字符串转int
str := “123” // string 转 int i, err := strconv.Atoi(str) if err == nil {   fmt.Printf(“i: %v\n”,i) } // string 转 int64 i64,err := strconv.ParseInt(str,10,64) if err == nil {   fmt.Printf(“i64: %v\n”,i64) } // string 转 int32 j,err := strconv.ParseInt(str,10,32) if err == nil {   fmt.Printf(“i32: %v\n”,int32(j)) }
全栈程序员站长
2022/11/06
3.4K0
数制转换itoa atoi int转字符串 字符串转int string转int int转string
C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串,下面列举了各函数的方法及其说明。 1.itoa():将整型值转换为字符串。 用法itoa(int,char*,int) 即(要转化的整形数,目标字符数组,进制) 2. ltoa():将长整型值转换为字符串。 用法ltoa(long,char*,int) 即(要转化的长整形数,目标字符数组,进制) ● gcvt():将浮点型数转换为字符串,取四舍五入。 用法gcvt(double,int,char*) 即(要转化的双精度浮点数,保留位数,目标字符串) ● ecvt():将双精度浮点型值转换为字符串,转换结果中不包含十进制小数点。 用法charecvt(double,int,int,int*) charecvt(双精度浮点数,保留位数,小数点位置,转换浮点数的符号) 这个函数存储最多ndigit个数字值作为一个字符串,并添加一个空数字符(’\0’),如果双精度浮点数中的数字个数超过保留位数,低位数字被舍入。如果少于保留位数个数字,该字符串用0填充浮点数符号0为正其余为负数。 ● fcvt():指定位数为转换精度,其余同ecvt()。 用法charfcvt(double,int,int*,int*) charfcvt(双精度浮点数,保留小数点后位数,小数点位置,转换浮点数的符号) 2. C/C++语言提供了几个标准库函数,可以将字符串转换为任意类型(整型、长整型、浮点型等)。 ● atof():将字符串转换为双精度浮点型值。 double atof=char(const char) ● atoi():将字符串转换为整型值。用法同上。 ● atol():将字符串转换为长整型值。用法同上。 ● strtod():将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字。double strtod(char * str,char * str) double strtod(转换的来源字符串首地址,不能转换数字的首地址) ● strtol():将字符串转换为长整值,并报告不能被转换的所有剩余数字。 strtol(char * str,char * str,int) double strtol(转换的来源字符串首地址,不能转换数字的首地址,基于进制) ● strtoul():将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字。用法同上。
风骨散人Chiam
2020/10/28
4K0
javaint数组转list集合_数组转int
这里教你一句话将int型的nums转为List,用到Java8的新特性Stream
全栈程序员站长
2022/09/23
2.2K0
c++字符串转int_python中lower的用法
在做ACM题时,经常都会遇到一些比较大的整数。而常用的内置整数类型常常显得太小了:其中long 和 int 范围是[-2^31,2^31),即-2147483648~2147483647。而unsigned范围是[0,2^32),即0~4294967295。也就是说,常规的32位整数只能够处理40亿以下的数。
全栈程序员站长
2022/11/01
6170
C++中int转string方法
将可变参数 “…” 按照format的格式格式化为字符串,然后再将其拷贝至str中。
全栈程序员站长
2022/11/10
2.5K0
C# 16 进制字符串转 int
最近在写硬件,发现有一些测试是做 16 进制的字符串,需要把他转换为整形才可以处理 本文告诉大家如何从 16 进制转整形
林德熙
2022/08/04
1.9K0
Golang中Int32转换为int16丢失精度的具体过程
Int32转换为int16会丢失精度,这是总所周知的,但是具体如何丢失精度的,请看下面的代码:
全栈程序员站长
2022/09/21
2.4K0
Golang中Int32转换为int16丢失精度的具体过程
C# 16 进制字符串转 int
最近在写硬件,发现有一些测试是做 16 进制的字符串,需要把他转换为整形才可以处理。 本文告诉大家如何从 16 进制转整形。
林德熙
2018/09/19
2.6K0
将char转换成int_c语言中int转char
一般平时写代码的同学都会确定b的值是-2,但实际上b的值和编译器有关,如果直接当做-2用,很有可能让你的程序出现莫名其妙的错误。
全栈程序员站长
2022/11/10
1.5K0

相似问题

将int转换为4字节的char数组(C)

8134

将int16转换为字节数组

13

将int转换为C中的字节数组?

50

Java -将int转换为4字节的字节数组?

4209

astype(int)将4转换为3

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文