• 全部
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm&WPF
  • C#开发新技术
  • 问答

高分求教,数据类型转换

dpy326 2020-12-17 06:03:18
int i = 10;
byte b;

要求将十进制数 i 转换为十六进制 0A 并赋值给byte类型的 b,即要求得到以下结果:

b = 0x0A;
...全文
3151 点赞 收藏 18
写回复
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Denuin 2020-12-22
只能帮到你这里了。

int i = 10;
byte bl= (byte)(i & 0x00ff);  // 低8位
byte bh = (byte)((i >> 8) & 0x00ff);  // 高8位
回复
assky124 2020-12-21
不是和你说了么,所谓的10进制和16进制在系统中存储的都是一样的,不明白可以翻翻计算机基础的书 比如你叫张三,英文名zhangsan,都是一个人,不同写法而已
引用 14 楼 dpy326 的回复:
引用 10 楼 enaking 的回复:
byte b = (byte)i;
我是用来串口通信中发送到下位机的,发送命令格式就是btye类型0x0A,不能用字符串格式化的形式。
回复
The 祺℡ 2020-12-21
输出格式,跟数据类型没关系,没关系,没关系。int类型也可以输出成0xFF的形式。
回复
shm_bd 2020-12-21
在内存里都一样
回复
dpy326 2020-12-19
引用 10 楼 enaking 的回复:
byte b = (byte)i;
我是用来串口通信中发送到下位机的,发送命令格式就是btye类型0x0A,不能用字符串格式化的形式。
回复
dpy326 2020-12-19
引用 11 楼 gs0038 的回复:
byte b = (byte)i;
如果你确实只是占一个byte的int,直接强制赋值就完事了
我是用来串口通信中发送到下位机的,发送命令格式就是btye类型0x0A,不能用字符串格式化的形式。
回复
dpy326 2020-12-19
引用 4 楼 assky124 的回复:
直接强转,10 和0x0A 二进制存的数是一样的,表象不同用不同的字符串格式化就好了
我是用来串口通信中发送到下位机的,发送命令格式就是btye类型0x0A,不能用字符串格式化的形式。
回复
enaking 2020-12-18
byte b = (byte)i;
回复
ziqi0716 2020-12-18
int值10这个数字内存中表示为00000000000000000000000000001010,这是计算机识别的,你想让他打印给人看,可以转成其他任何形式,但内存中还是这个东西. ToString方法有相关参数,用于转成你想要的进制字符串,此时,你拿到的字符串实际上并非原来数值了. 所以,在你计算过程中,没必要改,只需要在最后显示给人看时候再决定怎么显示.
回复
良朋 2020-12-18
直接byte b = (byte)i; 或者 string s = i.ToString("X2"); ,b = 0x0A; 这个写法是不对的。
回复
Denuin 2020-12-18

int i = 10;
byte b = (byte) i;
Console.WriteLine($"b = 0x{b:X2}");
这是你想要的结果吗?
回复
wanghui0380 2020-12-18
不明白上下文场景,我们只能把你所有可能想问的东西贴出来
       int i = 10;
            byte b = (byte) i;
            string s = i.ToString("X2");
            byte c = byte.Parse(s, System.Globalization.NumberStyles.HexNumber);
            int j = Convert.ToInt32(c);
回复
小灰狼 2020-12-18
所谓二进制、十进制、十六进制,只不过是一种人理解的表示方式而已,到了计算机里,全部都是二进制 楼主你直接强转赋值就可以了: byte b = (byte)i;
回复
assky124 2020-12-18
直接强转,10 和0x0A 二进制存的数是一样的,表象不同用不同的字符串格式化就好了
回复
gs0038 2020-12-18
byte b = (byte)i;
如果你确实只是占一个byte的int,直接强制赋值就完事了
回复
dpy326 2020-12-17
引用 2 楼 weixin_43268649 的回复:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); String string = scanner.nextLine();//输入十六进制数 int sum=0; for(int i=0;i<string.length();i++) { int m=string.charAt(i);//将输入的十六进制字符串转化为单个字符 int num=m>='A'?m-'A'+10:m-'0';//将字符对应的ASCII值转为数值 sum+=Math.pow(16, string.length()-1-i)*num; } System.out.println(sum); } }
能用c#写吗[face]monkey2:002.png[/face]
回复
离殇123546 2020-12-17
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); String string = scanner.nextLine();//输入十六进制数 int sum=0; for(int i=0;i<string.length();i++) { int m=string.charAt(i);//将输入的十六进制字符串转化为单个字符 int num=m>='A'?m-'A'+10:m-'0';//将字符对应的ASCII值转为数值 sum+=Math.pow(16, string.length()-1-i)*num; } System.out.println(sum); } }
回复
Bridge_go 2020-12-17
一脸懵逼
回复
相关推荐
综教楼后的那个坑用双向链表实现 描述   在 LIT 综教楼后有一个深坑,关于这个坑的来历,有很多种不同的说法。其中一种说法是,在很多年以前,这个坑就已经在那里了。这种说法也被大多数人认可,这是因为该坑有一种特别的结构,想要人工建造是有相当困难的。   从横截面图来看,坑底成阶梯状,由从左至右的 1..N 个的平面构成(其中 1 ≤ N ≤ 100,000),如图:    *            * :    *            * :    *            * 8    *    **      * 7    *    **      * 6    *    **      * 5    *    ********* 4 <- 高度    *    ********* 3    ************** 2    ************** 1 平面 |  1  |2|   3    | 每个平面 i 可以用两个数字来描述,即它的宽度 Wi 和高度 Hi,其中 1 ≤ Wi ≤ 1,000、1 ≤ Hi ≤ 1,000,000,而这个坑最特别的地方在于坑底每个平面的高度都是不同的。每到夏天,雨水会把坑填满,而在其它的季节,则需要通过人工灌水的方式把坑填满。灌水点设在坑底位置最低的那个平面,每分钟灌水量为一个单位(即高度和宽度均为 1)。随着水位的增长,水自然会向其它平面扩散,当水将某平面覆盖且水高达到一个单位时,就认为该平面被水覆盖了。   请你计算每个平面被水覆盖的时间。    灌水 水满后自动扩散 | | * | * * | * * * * V * * V * * * * * * .... * *~~~~~~~~~~~~* * ** * *~~~~** : * *~~~~**~~~~~~* * ** * *~~~~** : * *~~~~**~~~~~~* * ** * *~~~~**~~~~~~* *~~~~**~~~~~~* * ********* *~~~~********* *~~~~********* *~~~~********* *~~~~********* *~~~~********* ************** ************** ************** ************** ************** **************    4 分钟后    26 分钟后        50 分钟后    平面 1 被水覆盖     平面 3 被水覆盖    平面 2 被水覆盖输入   输入的第一行是一个整数 N,表示平面的数量。从第二行开始的 N 行上分别有两个整数,分别表示平面的宽度和高度。 输出   输出每个平面被水覆盖的时间。
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2020-12-17 06:03
社区公告

让您成为最强悍的C#开发者