首页 > 其他分享 >C语言unsigned long 转换拆分

C语言unsigned long 转换拆分

时间:2023-01-29 12:44:06浏览次数:46  
标签:字节 unsigned long C语言 char 0xff

提问:

 问题遇到的现象和发生背景

C语言将一个long的4个字节a b c d拆分成d c b a并且组回去,比如0x5f05变成0x055f
遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
运行结果及详细报错内容,位运算用左移8位或者用除法取模这种256来做。

解答:

 可以使用位运算来实现unsigned long类型的字节拆分和重组。

首先,可以使用位移运算符(>>和​1
Malformed citation <<)将每个字节拆分出来。例如,将unsigned long x = 0x5f05; 拆分成四个字节,可以使用以下代码:

unsigned char a = (x >> 24) & 0xff;
unsigned char b = (x >> 16) & 0xff;
unsigned char c = (x >>
​ 8) & 0xff;
unsigned char d = x & 0xff;
然后,可以使用位或运算符(|)将这四个字节重新组合成一个unsigned long值。例如,将这四个字节重新组合为unsigned long y,可以使用以下代码:

unsigned long y = (d << 24) | (c << 16) | (b << 8) | a;

```
其中 &0xff 是将高8位置0,取最低8位,后面的位移是将数字的二进制移动到对应的位置

最后将y的值就是你要的结果了, y = 0x055f

标签:字节,unsigned,long,C语言,char,0xff
From: https://www.cnblogs.com/dituirenwu/p/17072374.html

相关文章

  • 对于vector容器中,存储的是int类型,但若不开long long 就ER
    牛客暑期训练1Fdfs鸡玩炸弹人#include<iostream>#include<vector>usingnamespacestd;typedeflonglongll;//计算有炸弹的连通块的数量。在一个连通块内不论......
  • 看C语言程序员的七夕如何表白:用C说爱你
    有一封信,送给有你的七夕。总想为这1385个日夜写点什么,却是提笔思念,落笔无言。我只是一个平凡的C语言程序员,请你原谅我的笨,我愿给你我的心。我不会甜言蜜语,只会用C说爱你。 ......
  • C语言代码之判断回文数
    #include<stdio.h>//判断是否为回文数intmain(){ inta,n,s=0; printf("inputanumber:"); scanf("%d",&a); n=a; for(;;) { s=s*10+a%10; if(a/10==0) break; a=......
  • [快速学]C语言-文件操作
     相关函数位于<stdio.h>中缓冲区/流文件和程序之间有输入/输出缓冲区,缓冲区是一个内存空间文件位置指针读数据从文件位置指针开始读,写数据从文件指针位置开始覆写打......
  • C语言整型在内存中的存储
    前言对于整型家族里的C语言内置数据结构:char,short,intlong来说,都有无符号(unsigned)和有符号(signed)之分。整型家族在内存中都是以补码的形式存在.一、整型家族char:unsig......
  • C语言基础教程:C语言随机数
    1.随机数概述编写程序过程中,我们经常需要产生一些随机数。随机数在程序中分为两种:真随机数:完全没有规则,无法预测接下来要产生的数。伪随机数:通过一些预先设定好的规则产生......
  • C语言字符
    一、C语言字符​C语言中,凡\AAA表示的字符都是以ASCII码为八进制数AAA的字符这里的A表示任意小于8的数字凡\xAA表示的字符都是以ASCII码为​​十六进制数​​AA的字符这里的A......
  • vs2022创建c语言的dll项目
    1.创建项目  2.创建完成不需要删除自动生成的文件3.修改项目属性右键单击--->c/c++--->常规----->附件包含目录------>这里不用 c/c++----->预处理器------->......
  • 用C语言读取大文件的问题 内存映射
    Windows对文件的读写提供了很丰富的操作手段,如:1.FILE*fp,fstearm;(C/C++)2.CFile,CStdioFile;(MFC)3.CreateFile,ReadFile;(API)在处理一般的文件(文本/非文本),......
  • 范围内的完全数输出C语言代码
      #include<stdio.h>intmain(){ inti,j,n,he; i=1; printf("inputanumber:"); scanf("%d",&n); while(i<=n) { j=1;he=0; while(j<i) { if(i%j==0) ......