怎么弄啊?
大侠们,给个例子啊···
49 个解决方案
#1
int x=2,y=0xA;//x,y就是那两个数,都要小于16
byte result=(byte)(x*16+y);//result=0x2A
应该就是个数学关系吧
#2
BitConverter.GetBytes()
#3
不好意思,看错题了,重新写
int x=21;
byte result=(byte)((x/10)*16+x%10);//result=0x21
#4
BitConverter.GetBytes(你的数值)
#5
比如 我现在是这样的:
byte 密码 = 98;
密码1(9)+密码2(8)(高4位是密码1,低4位是密码2)
这样的话 怎么弄?
byte 密码 = 98;
密码1(9)+密码2(8)(高4位是密码1,低4位是密码2)
这样的话 怎么弄?
#6
比如 我现在是这样的:
byte 密码 = 98;
密码1(9)+密码2(8)(高4位是密码1,低4位是密码2)
这样的话 怎么弄?
#7
比如 我现在是这样的:
byte 密码 = 98;
密码1(9)+密码2(8)(高4位是密码1,低4位是密码2)
这样的话 怎么弄?
#8
int a =423;//假定3位数,取出23
byte ShiWei = (byte)((a/10)%10); //得到十位数2,转化为byte,00000010
byte GeWei = (byte)(a%10);//得到个位数3,转化为byte,00000011
byte result = ShiWei<<4;//十位数左移4位,00100000
result = result|GeWei//与个位数相或,00100011
Console.WriteLine(result.ToString()); //输出35
#9
错了错了
我又错了
楼主说得是一个字节的4位
我搞成了Byte[4]了
我又错了
楼主说得是一个字节的4位
我搞成了Byte[4]了
#10
比如 我现在是这样的:
byte 密码 = 98;
密码1(9)+密码2(8)(高4位是密码1,低4位是密码2)
这样的话 怎么弄?
急急急··详细点··谢谢谢谢谢谢···
#11
给点思路啊··
#12
我代码不就是这个意思吗,你认真看没有
#13
一样的呀。。。你改下数字不就好啦
byte code=98;
byte result=(byte)(code/10*16+code%10);//result=0x98
#14
- -楼主,这就是个数学运算呀,先取出十进制的十位和个位,然后分别赋给十六进制(byte)的高位和低位
#15
一时间看明白··
能不能给点什么伪代码的··
项目不能卡在这啊··
#16
byte result = ShiWei<<4;
这返回的不是一个byte类型吧?
C# 里面不是的啊··
#17
这是位移,可以这样子的。
#18
result = result|GeWei//与个位数相或,00100011
这句是什么意思? 相加?
#19
是的,等同于相加
#20
被你打败,代码我已经给了呀。。。。看13楼。。。我都已经给两次了,你只要改下byte code的值就行了,result就是重新生成的byte。
弱弱问句,楼主有没有学过16进制--
#21
你和8楼的有区别么?
我才学这个没多久···16进制的还不怎么了解··所有···
#22
那还弄byte高低位这种高级东西啊?
#23
我也不想啊 我日·
调用C的dll 方法里的说明就是这样的撒··
他是这样的:
字节8 XX 密码1+密码2(高4位是密码1,低4位是密码2)
字节9 XX 密码3+密码4(高4位是密码3,低4位是密码4)
字节10 XX 密码5+密码6(高4位是密码5,低4位是密码6)如果4位密码,此字节为0xFF。
明白了嘛?
#24
楼主呀,初学者不要这样口气。要不然得不到别人的帮助。现在给你一个最容易理解的方法
条件你得知道二进制是怎么回事,假如你知道,那请看下边,不知道,就自己问度娘
一个字节是有8位等同于二进制00000000 ---- 11111111
高4位就是前面的4个 (1111) 低4就是后(1111)
假如一个值10000011 他的高4位为1000,低四位为0011 变成数值就是8 ,3
所以最直接的方法就是把每个字节都转成二进制后,按上面的方法 再把高4,低4的二进制转成数值,就是你想要的结果了
#25
欧 sorry 对于我的口气 我对你说声 抱歉哈··sorry
你热心的回答对我帮助很大··
谢了···
#26
撸主,很容易的
byte temp=0x12;
string byteString=Convert.ToString(temp, 16);
if(byteString.Length==2)
{
//高字节
int gao=Convert.ToInt32(byteString.Substring(0,1));
//低
int gao=Convert.ToInt32(byteString.Substring(1,1));
}
byte temp=0x12;
string byteString=Convert.ToString(temp, 16);
if(byteString.Length==2)
{
//高字节
int gao=Convert.ToInt32(byteString.Substring(0,1));
//低
int gao=Convert.ToInt32(byteString.Substring(1,1));
}
#27
大哥 求详解···
#28
...源代码都有了
#29
int n = 98;
string str = Convert.ToString(n, 2);
byte by = Convert.ToByte(str,2);你就是想把两位整数存成字节形式吧,这样98就变成字节形式了0x98了,高4位是1001,低4位是1000
string str = Convert.ToString(n, 2);
byte by = Convert.ToByte(str,2);你就是想把两位整数存成字节形式吧,这样98就变成字节形式了0x98了,高4位是1001,低4位是1000
#30
byte n=98;
var 高位=(n&240)>>4
var 低位=(n&15)<<4
var 高位=(n&240)>>4
var 低位=(n&15)<<4
#31
byte code=98;//楼主啊,code呢,就是你要转换的两位数,数字随便你改,两位就行啦
byte result=(byte)(code/10*16+code%10);//result呢,就是转变后的字节,就是byte类型,够详细了吧--
code/10得到的是code的十位,在这个例子里就是9,为什么乘以16呢,因为要把它变成byte的高4位,比如一个十六进制的数0X10,等于十进制的16,那么十六进制的0x90就等于9*16;code%10取的是code的个位。
建议楼主还是去了解下byte的高四位和低四位是怎么回事吧,把它看成十六进制就好办多了
#32
code/10得到的是code的十位,在这个例子里就是9,为什么乘以16呢,因为要把它变成byte的高4位,比如一个十六进制的数0X10,等于十进制的16,那么十六进制的0x90就等于9*16;code%10取的是code的个位。
这种方法不错
这种方法不错
#33
首先向右移若干位得到第一个包含高位字节的变量,再把原两位数字左移若干位再右移若干位得到低位字节,再把这两个变量相加。
#34
如果 code 是00怎么办?
#35
http://msdn.microsoft.com/zh-cn/library/5bdb6693(v=VS.80).aspx
撸主,不用多考虑了。
1.如果要技巧或者算法,你可以照搬。
2.如果你知道该数据类型的本质,有点编程的基础,完全可以以自己的方式弄出你想要的结果。
如果撸主不想多动脑,就继续在这里等完整答案吧。
撸主,不用多考虑了。
1.如果要技巧或者算法,你可以照搬。
2.如果你知道该数据类型的本质,有点编程的基础,完全可以以自己的方式弄出你想要的结果。
如果撸主不想多动脑,就继续在这里等完整答案吧。
#36
。。。。。。。。。。。。。。。。。。。。。
我其实只是想问哈 这个答案和8楼的有啥区别而已···
#37
这个问题很简单 取十位数的数值9 付给byte类型变量bValue1 二进制表示 0000
1001
然后 bValue1左移4位,移动到高4位获得bValue12 二进制表示 10010000, 取个位数值8 赋值给 byte 类型 变量 bValue3 二进制表示 00001000 ,个位直接保存在了低四位。 bValue12、 bValue3 相加的到楼主需要的结果
1001 1000 原理就是这样子
代码
byte bValue1 = 9;
bValue2 = bValue1 <<4;
byte bValue3 = 8;
byte result = bValue2 + bValue3;
然后 bValue1左移4位,移动到高4位获得bValue12 二进制表示 10010000, 取个位数值8 赋值给 byte 类型 变量 bValue3 二进制表示 00001000 ,个位直接保存在了低四位。 bValue12、 bValue3 相加的到楼主需要的结果
1001 1000 原理就是这样子
代码
byte bValue1 = 9;
bValue2 = bValue1 <<4;
byte bValue3 = 8;
byte result = bValue2 + bValue3;
#38
是00的话那得到的就是0x00;你都不自己试下的吗
目测楼上已经有好几个答案了,但是楼主一点脑筋都不想动,是不是要大家从00一直到99写100个例子给你呀。。。。
#39
嗯嗯 我知道 你这个和八楼一样··
谢谢你
#40
答案多有啥用
没搞懂原理 只要答案我发个帖子闹锤子啊···
#41
跪了,你不思考,别人就是给你讲一千遍原理你也是不懂
我提供的方法在31楼已经进行了很详细的说明,你要是还看不懂。。。。。那。。。。还是。。。。
#42
谢了
问题不在于答案是什么··
但是 还是要谢谢你的耐心讲解哦··
我知道你和八楼的结果都是一样的··
我只是问哈你和她的区别是什么··
我并没说 我没懂撒··只是请教你 你这周思考的区别在那、?
sorry······
#43
好吧,区别在于8楼的是位运算,我用的方法是算术运算
将一个数左移4位,意思是将一个数的二进制表示左移4位,相当于乘以16
你可以去了解下2进制和16进制
比如一个数为1,左移4位,表示成二进制的byte类型就是0001 0000,表示成十进制就是16,表示成十六进制就是0x10.
将一个数左移4位,意思是将一个数的二进制表示左移4位,相当于乘以16
你可以去了解下2进制和16进制
比如一个数为1,左移4位,表示成二进制的byte类型就是0001 0000,表示成十进制就是16,表示成十六进制就是0x10.
#44
谢谢!!!!!!
#45
楼主好奇葩,编程竟然还能不懂16进制?!?!
#46
是呀 是呀·
不懂呀··
你懂完了呀?
什么是!@##@¥#@¥@#¥按 ?
#47
我也想知道这个问题,请指教
#48
那你更奇葩····
#49
#1
int x=2,y=0xA;//x,y就是那两个数,都要小于16
byte result=(byte)(x*16+y);//result=0x2A
应该就是个数学关系吧
#2
BitConverter.GetBytes()
#3
不好意思,看错题了,重新写
int x=21;
byte result=(byte)((x/10)*16+x%10);//result=0x21
#4
BitConverter.GetBytes(你的数值)
#5
比如 我现在是这样的:
byte 密码 = 98;
密码1(9)+密码2(8)(高4位是密码1,低4位是密码2)
这样的话 怎么弄?
byte 密码 = 98;
密码1(9)+密码2(8)(高4位是密码1,低4位是密码2)
这样的话 怎么弄?
#6
比如 我现在是这样的:
byte 密码 = 98;
密码1(9)+密码2(8)(高4位是密码1,低4位是密码2)
这样的话 怎么弄?
#7
比如 我现在是这样的:
byte 密码 = 98;
密码1(9)+密码2(8)(高4位是密码1,低4位是密码2)
这样的话 怎么弄?
#8
int a =423;//假定3位数,取出23
byte ShiWei = (byte)((a/10)%10); //得到十位数2,转化为byte,00000010
byte GeWei = (byte)(a%10);//得到个位数3,转化为byte,00000011
byte result = ShiWei<<4;//十位数左移4位,00100000
result = result|GeWei//与个位数相或,00100011
Console.WriteLine(result.ToString()); //输出35
#9
错了错了
我又错了
楼主说得是一个字节的4位
我搞成了Byte[4]了
我又错了
楼主说得是一个字节的4位
我搞成了Byte[4]了
#10
比如 我现在是这样的:
byte 密码 = 98;
密码1(9)+密码2(8)(高4位是密码1,低4位是密码2)
这样的话 怎么弄?
急急急··详细点··谢谢谢谢谢谢···
#11
给点思路啊··
#12
我代码不就是这个意思吗,你认真看没有
#13
一样的呀。。。你改下数字不就好啦
byte code=98;
byte result=(byte)(code/10*16+code%10);//result=0x98
#14
- -楼主,这就是个数学运算呀,先取出十进制的十位和个位,然后分别赋给十六进制(byte)的高位和低位
#15
一时间看明白··
能不能给点什么伪代码的··
项目不能卡在这啊··
#16
byte result = ShiWei<<4;
这返回的不是一个byte类型吧?
C# 里面不是的啊··
#17
这是位移,可以这样子的。
#18
result = result|GeWei//与个位数相或,00100011
这句是什么意思? 相加?
#19
是的,等同于相加
#20
被你打败,代码我已经给了呀。。。。看13楼。。。我都已经给两次了,你只要改下byte code的值就行了,result就是重新生成的byte。
弱弱问句,楼主有没有学过16进制--
#21
你和8楼的有区别么?
我才学这个没多久···16进制的还不怎么了解··所有···
#22
那还弄byte高低位这种高级东西啊?
#23
我也不想啊 我日·
调用C的dll 方法里的说明就是这样的撒··
他是这样的:
字节8 XX 密码1+密码2(高4位是密码1,低4位是密码2)
字节9 XX 密码3+密码4(高4位是密码3,低4位是密码4)
字节10 XX 密码5+密码6(高4位是密码5,低4位是密码6)如果4位密码,此字节为0xFF。
明白了嘛?
#24
楼主呀,初学者不要这样口气。要不然得不到别人的帮助。现在给你一个最容易理解的方法
条件你得知道二进制是怎么回事,假如你知道,那请看下边,不知道,就自己问度娘
一个字节是有8位等同于二进制00000000 ---- 11111111
高4位就是前面的4个 (1111) 低4就是后(1111)
假如一个值10000011 他的高4位为1000,低四位为0011 变成数值就是8 ,3
所以最直接的方法就是把每个字节都转成二进制后,按上面的方法 再把高4,低4的二进制转成数值,就是你想要的结果了
#25
欧 sorry 对于我的口气 我对你说声 抱歉哈··sorry
你热心的回答对我帮助很大··
谢了···
#26
撸主,很容易的
byte temp=0x12;
string byteString=Convert.ToString(temp, 16);
if(byteString.Length==2)
{
//高字节
int gao=Convert.ToInt32(byteString.Substring(0,1));
//低
int gao=Convert.ToInt32(byteString.Substring(1,1));
}
byte temp=0x12;
string byteString=Convert.ToString(temp, 16);
if(byteString.Length==2)
{
//高字节
int gao=Convert.ToInt32(byteString.Substring(0,1));
//低
int gao=Convert.ToInt32(byteString.Substring(1,1));
}
#27
大哥 求详解···
#28
...源代码都有了
#29
int n = 98;
string str = Convert.ToString(n, 2);
byte by = Convert.ToByte(str,2);你就是想把两位整数存成字节形式吧,这样98就变成字节形式了0x98了,高4位是1001,低4位是1000
string str = Convert.ToString(n, 2);
byte by = Convert.ToByte(str,2);你就是想把两位整数存成字节形式吧,这样98就变成字节形式了0x98了,高4位是1001,低4位是1000
#30
byte n=98;
var 高位=(n&240)>>4
var 低位=(n&15)<<4
var 高位=(n&240)>>4
var 低位=(n&15)<<4
#31
byte code=98;//楼主啊,code呢,就是你要转换的两位数,数字随便你改,两位就行啦
byte result=(byte)(code/10*16+code%10);//result呢,就是转变后的字节,就是byte类型,够详细了吧--
code/10得到的是code的十位,在这个例子里就是9,为什么乘以16呢,因为要把它变成byte的高4位,比如一个十六进制的数0X10,等于十进制的16,那么十六进制的0x90就等于9*16;code%10取的是code的个位。
建议楼主还是去了解下byte的高四位和低四位是怎么回事吧,把它看成十六进制就好办多了
#32
code/10得到的是code的十位,在这个例子里就是9,为什么乘以16呢,因为要把它变成byte的高4位,比如一个十六进制的数0X10,等于十进制的16,那么十六进制的0x90就等于9*16;code%10取的是code的个位。
这种方法不错
这种方法不错
#33
首先向右移若干位得到第一个包含高位字节的变量,再把原两位数字左移若干位再右移若干位得到低位字节,再把这两个变量相加。
#34
如果 code 是00怎么办?
#35
http://msdn.microsoft.com/zh-cn/library/5bdb6693(v=VS.80).aspx
撸主,不用多考虑了。
1.如果要技巧或者算法,你可以照搬。
2.如果你知道该数据类型的本质,有点编程的基础,完全可以以自己的方式弄出你想要的结果。
如果撸主不想多动脑,就继续在这里等完整答案吧。
撸主,不用多考虑了。
1.如果要技巧或者算法,你可以照搬。
2.如果你知道该数据类型的本质,有点编程的基础,完全可以以自己的方式弄出你想要的结果。
如果撸主不想多动脑,就继续在这里等完整答案吧。
#36
。。。。。。。。。。。。。。。。。。。。。
我其实只是想问哈 这个答案和8楼的有啥区别而已···
#37
这个问题很简单 取十位数的数值9 付给byte类型变量bValue1 二进制表示 0000
1001
然后 bValue1左移4位,移动到高4位获得bValue12 二进制表示 10010000, 取个位数值8 赋值给 byte 类型 变量 bValue3 二进制表示 00001000 ,个位直接保存在了低四位。 bValue12、 bValue3 相加的到楼主需要的结果
1001 1000 原理就是这样子
代码
byte bValue1 = 9;
bValue2 = bValue1 <<4;
byte bValue3 = 8;
byte result = bValue2 + bValue3;
然后 bValue1左移4位,移动到高4位获得bValue12 二进制表示 10010000, 取个位数值8 赋值给 byte 类型 变量 bValue3 二进制表示 00001000 ,个位直接保存在了低四位。 bValue12、 bValue3 相加的到楼主需要的结果
1001 1000 原理就是这样子
代码
byte bValue1 = 9;
bValue2 = bValue1 <<4;
byte bValue3 = 8;
byte result = bValue2 + bValue3;
#38
是00的话那得到的就是0x00;你都不自己试下的吗
目测楼上已经有好几个答案了,但是楼主一点脑筋都不想动,是不是要大家从00一直到99写100个例子给你呀。。。。
#39
嗯嗯 我知道 你这个和八楼一样··
谢谢你
#40
答案多有啥用
没搞懂原理 只要答案我发个帖子闹锤子啊···
#41
跪了,你不思考,别人就是给你讲一千遍原理你也是不懂
我提供的方法在31楼已经进行了很详细的说明,你要是还看不懂。。。。。那。。。。还是。。。。
#42
谢了
问题不在于答案是什么··
但是 还是要谢谢你的耐心讲解哦··
我知道你和八楼的结果都是一样的··
我只是问哈你和她的区别是什么··
我并没说 我没懂撒··只是请教你 你这周思考的区别在那、?
sorry······
#43
好吧,区别在于8楼的是位运算,我用的方法是算术运算
将一个数左移4位,意思是将一个数的二进制表示左移4位,相当于乘以16
你可以去了解下2进制和16进制
比如一个数为1,左移4位,表示成二进制的byte类型就是0001 0000,表示成十进制就是16,表示成十六进制就是0x10.
将一个数左移4位,意思是将一个数的二进制表示左移4位,相当于乘以16
你可以去了解下2进制和16进制
比如一个数为1,左移4位,表示成二进制的byte类型就是0001 0000,表示成十进制就是16,表示成十六进制就是0x10.
#44
谢谢!!!!!!
#45
楼主好奇葩,编程竟然还能不懂16进制?!?!
#46
是呀 是呀·
不懂呀··
你懂完了呀?
什么是!@##@¥#@¥@#¥按 ?
#47
我也想知道这个问题,请指教
#48
那你更奇葩····