博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
按字节提取整形数值(按位与运算符“&”、右移位运算符“>>”)
阅读量:6698 次
发布时间:2019-06-25

本文共 1790 字,大约阅读时间需要 5 分钟。

输入一个十进制整数,将其转换成十六进制数输出,并提取每一字节所表示的十六进制数值逐一输出。测试数据如下:

分析:从控制台输入一个十进制整数,将其转换成十六进制数输出,接着提取其4个字节。用到按位与运算符“&”、右移位运算符“>>”。

ps:“0x”是十六进制数的前缀。位(bit):度量数据的最小单位,表示一位二进制信息;字节(byte):由八位二进制数字组成(1 byte = 8 bit)。1个字节表示2位十六进制数。

新建一个Visual C# 控制台程序

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace _10_16_013{    class Program    {        static void Main(string[] args)        {            /* 功能: 输入一个十进制整数,将其转换成十六进制数输出,并提取每一字节所表示的十六进制数值逐一输出             * 补充:位(bit):度量数据的最小单位,表示一位二进制信息。             *       字节(byte):由八位二进制数字组成(1 byte = 8 bit)。             */             Console.WriteLine("输入一个整数:");            int Num = int.Parse(Console.ReadLine());            // 从控制台输入一个十进制整数            Console.WriteLine("{0}的十六进制形式为0x{1:X8}",Num,Num);            // X8表示十六进制格式(大写),域宽8位,不足的左边填0            int Hex = Num & 0x000000FF;            // 数值与0xFF按位与运算            Console.WriteLine("第1个字节为:0x{0:X2}",Hex);            // X2表示十六进制格式(大写),域宽2位,不足的左边填0            Hex = Num >> 8 & 0x000000FF;            // 数值右移8位与0xFF按位与运算            Console.WriteLine("第2个字节为:0x{0:X2}", Hex);            // X2表示十六进制格式(大写),域宽2位,不足的左边填0            Hex = Num >> 16 & 0x000000FF;            // 数值右移8位与0xFF按位与运算            Console.WriteLine("第3个字节为:0x{0:X2}", Hex);            // X2表示十六进制格式(大写),域宽2位,不足的左边填0            Hex = Num >> 24 & 0x000000FF;            // 数值右移8位与0xFF按位与运算            Console.WriteLine("第4个字节为:0x{0:X2}", Hex);            // X2表示十六进制格式(大写),域宽2位,不足的左边填0        }    }}

当输入123456789时,对应的十六进制数为0x075BCD15。

第1个字节为0x15,十进制为21。

右移8位后,对应的十六进制数为0x00075BCD。

第2个字节为0xCD,十进制为205。

右移16位后,对应的十六进制数为0x0000075B。

第3个字节为0x5B,十进制为91。

右移32位后,对应的十六进制数为0x00000007。

第4个字节为0x07,十进制为7。

对应的,当输入其他数据时,依然这样逐步分析。

转载于:https://www.cnblogs.com/Genesis2018/p/8304751.html

你可能感兴趣的文章
初识react(二) 实现一个简版的html+redux.js的demo
查看>>
聊聊技术写作的个人体会
查看>>
前端每周清单第 34 期:Vue 现状盘点与 3.0 展望,React 代码迁移与优化,图片优化详论...
查看>>
打造自己的 APP「冰与火百科」(一):分析定位
查看>>
智能合约语言 Solidity 教程系列5 - 数组介绍
查看>>
手把手0基础项目实战(一)——教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)...
查看>>
Win10安全特性之执行流保护
查看>>
【附源码】为了帮助程序员谈恋爱,我做了这个APP
查看>>
vue+elementUI开发实践问题总结
查看>>
SpringBoot2使用WebFlux函数式编程
查看>>
面试官问我:什么是JavaScript闭包,我该如何回答
查看>>
V8 中更快的异步函数和 promises
查看>>
Android开发必用工具及其进阶途径
查看>>
android自定义view(自定义数字键盘)
查看>>
在线代码编辑器 Codemirror 的轻量级 React 组件
查看>>
Yii1.1 CGridView 简单使用
查看>>
【刷算法】字符串的全排列
查看>>
进击的二维码 | ArcBlock 课堂预告
查看>>
自定义SeekBar 实时显示百分比进度
查看>>
JavaScript 专题之函数柯里化
查看>>