社区
C#
帖子详情
二进制交换位置,并输出的问题.
restartboy
2005-03-13 10:31:18
请教大家一个问题.
我从一个文件依次读出一个8字节的流.
怎么实现将他的二进制数据的位置改变.
比如我读出0x123456789abcdef
怎样将他的二进制数的第1位放到第58位,第2位放到第50位……第64位放到第7位,再以二进制输出。
谢谢。
...全文
202
12
打赏
收藏
二进制交换位置,并输出的问题.
请教大家一个问题. 我从一个文件依次读出一个8字节的流. 怎么实现将他的二进制数据的位置改变. 比如我读出0x123456789abcdef 怎样将他的二进制数的第1位放到第58位,第2位放到第50位……第64位放到第7位,再以二进制输出。 谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
greenery
2005-03-19
打赏
举报
回复
呵呵,你还没有结贴吧?还没有收到你的分哦。
wanzhigang
2005-03-18
打赏
举报
回复
int sur=0x123;
string s=Convert.ToString(sur,2);//转换成二进制字符串
byte [] bs=Encoding.Default.GetBytes(s);//放入byte数组
Array.Reverse(bs);//反转byte数组元素
s=Encoding.Default.GetString(bs);//反转后的结果放入字符串
int tar=Convert.ToInt32(s,2);//转换为数值
MessageBox.Show(s+" "+tar.ToString());
restartboy
2005-03-17
打赏
举报
回复
greenery你的分加上去了吗。怎么我给了分这里还是显示0分阿。
greenery
2005-03-14
打赏
举报
回复
好,再写
byte x = 0xD4;
byte y = 0;
y = checkAndLink((x & 0x01) , 0x04) // 第1位放到第3位
| checkAndLink((x & 0x02) , 0x80) // 第2位放到第8位
| checkAndLink((x & 0x04) , 0x02) //第3位放到第2位
.....
byte checkAndLink(byte p_byOld, byte p_byOffset)
{
if (p_byOld > 0)
return p_byOffset;
else
return 0;
}
restartboy
2005-03-13
打赏
举报
回复
to:greenery
你这样好像不行吧.
你是从右边开始算的第一位吧.
如果这样的话,我的例子11010100 变换后应该是01011010
按照你的方法,比如((x & 0x04) & 0x02) 先是把第3位取出来,变成00000100,但是00000100和0x02与是得00000000啊,而不是00000010。
再帮忙想象吧。还是谢过:)
greenery
2005-03-13
打赏
举报
回复
byte x = 0xD4;
byte y = 0;
y = ((x & 0x01) & 0x04) // 第1位放到第3位
| ((x & 0x02) & 0x80) // 第2位放到第8位
| ((x & 0x04) & 0x02) //第3位放到第2位
.....
大概是这样,你看看可否?
restartboy
2005-03-13
打赏
举报
回复
比如二进制11010100
第1位放到第3位,第2位放到第8位,第3位放到第2位,第4位放到第6位,第5位放到第7位,第6位放到第1位,第7位放到第4位,第8位放到第5位.
就变成 10100101
xxuu503
2005-03-13
打赏
举报
回复
有逻辑关系么?没有逻辑关系的话,你就按最啰嗦的方法写
somedummy
2005-03-13
打赏
举报
回复
这个……
描述得很不清楚,无法推导你想要干什么……
xiongchen
2005-03-13
打赏
举报
回复
UP
restartboy
2005-03-13
打赏
举报
回复
我1个字节这样做是对的。
但8个字节就不行了。
我用的long类型
跟踪
类似1<<40这样位数移得比较多的是错的。
有什么解决方法吗?
restartboy
2005-03-13
打赏
举报
回复
谢谢greenery的启发
int[] IP = {3,8,2,6,7,1,4,5};
int x = 0xD4;
int y =0;
for(int i=0;i<=7;i++)
{
if(i<=IP[i])
{
y = y|((x&(1<<7-i))>>(IP[i]-i-1));
}
else
y = y|((x&(1<<7-i))<<(i-IP[i]+1));
}
Console.WriteLine("{0:X}",y);
(ps 我是从左边算的第一位)
另外我想问问在执行移位操作时,计算机是一位一位的加0,还是一下算出0的个数再一起加。我上边的算法都有点时延,这还是1个字节,如果变成8个字节,会不会慢很多。
SQL面试高频六大陷阱:从窗口函数到业务口径的实战避坑指南
SQL不仅是数据查询语言,更是数据工程师与分析师解决真实业务
问题
的核心工程能力。理解SELECT执行顺序、GROUP BY与窗口函数的协同边界、JOIN后空值语义、COUNT(DISTINCT)在多表关联中的精度风险等基础原理,是写出健壮SQL的前提。其技术价值在于将模糊业务需求(如‘最近一次’‘连续登录’‘高价值用户’)精准翻译为可执行、可验证、可维护的逻辑表达式。典型应用场景覆盖用户行为分析、漏斗转化计算、同比环比统计、动态TOP N排名及跨指标口径对齐等数据岗高频任务。本文聚焦面试中反复暴露思维盲区的
AutoGen多智能体协作系统:AI团队工作流的操作系统
多智能体系统(MAS)是构建复杂AI应用的核心范式,其本质是通过角色化分工、异步消息通信与去中心化状态管理,实现AI之间的可信协同。AutoGen作为该领域的代表性框架,不依赖传统单Agent万能架构,而是以ConversableAgent为单元、GroupChat为调度中枢、内置工具链为执行底座,支撑RAG增强、智能体编排、自动化质检等高价值场景。它特别适合需快速验证业务逻辑的产品经理、专注工作流落地的AI开发者,以及追求可解释性与可控性的算法研究者——本文深入解析其通信协议设计、容错机制与生产级演进路径
遗传算法工程化实战:适应度设计、编码适配与早熟干预
遗传算法(GA)作为经典启发式优化方法,其理论入门易,工业落地难。核心难点不在‘能不能跑’,而在于‘能不能稳、准、快地解决真实约束
问题
’。这取决于三大工程要素:适应度函数是否将业务规则精准编译为可学习信号;编码策略是否与
问题
结构同构,保障算子操作天然合法;以及收敛控制机制能否识别并打破早熟停滞。尤其在智能制造排产、能源系统参数调优、机器人路径规划等场景中,错误的惩罚系数、失配的编码方式或缺失的多样性维持,常导致算法陷入局部最优或生成不可行解。本文聚焦GA从实验室到产线的关键跃迁,结合237个工业案例,详解如
Google Vertex AI Agent生产级可靠性构建指南
AI智能体(AI Agent)是大模型落地的核心范式,其本质是基于LLM的动态工作流编排与工具调用系统。理解Agent需把握三大原理:意图解析驱动动作分解、结构化工具调用保障执行可控、分层状态管理维持多轮一致性。技术价值在于 bridging the gap 从PoC到生产——解决意图理解断层、工具调用断层、状态管理断层与可观测性断层。典型应用场景包括金融咨询、政务问答、电商客服等需高可靠、可审计、可调试的业务系统。本文聚焦Google Cloud生态下,以Vertex AI Agent Builder为核
YOLO算法办公室场景办公椅目标检测数据集-32张-标注类别为办公椅.zip
本资源为YOLO算法办公室场景办公椅目标检测数据集-32张-标注类别为办公椅YOLO目标检测数据集。 内容概要: 包含标注好的训练图像和YOLO格式标签文件,可直接用于YOLO系列模型训练。 适用人群: 计算机视觉学习者、目标检测开发者、AI研究人员。 使用场景: 目标检测模型训练、算法验证、学术研究。 说明: 数据集已按标准YOLO格式组织,包含data.yaml配置文件。
C#
111,129
社区成员
642,540
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章