asp如何实现int型转换成占用2个byte和占4个byte得

大蝈蝈421 2005-07-30 06:25:20
asp如何实现int型转换成占用2个byte和占4个byte得 ,各位帮忙了
...全文
115 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
大蝈蝈421 2005-07-31
  • 打赏
  • 举报
回复
非常感谢各位的帮忙,这个,对于小的数据如文件个数占用2个byte,对于大些的的数据,如文件的大小,就要求占用4个byte,按一定的规则写入文件中,当然规则中规定好了,那个占用2个,那个占用4个。各位的方法,一会我试试,谢谢各位了。
ChengKing 2005-07-31
  • 打赏
  • 举报
回复
2byte: 用位运行,二进制截断 用: & | ^ 位运算符

4byte: 本来int 就是占用4byte呀,就不用截了
lovexyz 2005-07-31
  • 打赏
  • 举报
回复
还是那句话,建议楼主到MSDN中找GetBytes之类的东东,好要,高效
lovexyz 2005-07-30
  • 打赏
  • 举报
回复
我晕死,什么东东都出来了。
库里边的GetBytes之类的东东多的是,为什么要位运算?

Int16到2位还差不多
速马 2005-07-30
  • 打赏
  • 举报
回复
try:
[STAThread]
static unsafe void Main(string[] args)
{
int i = 0x7FFFFFFF;
int* pi = &i;

byte* pb = (byte*)pi;
for(int offset = 0; offset < sizeof(int) / sizeof(byte); offset++)
{
Console.WriteLine(*pb);
pb++;
}

Console.ReadLine();
}
zhilunchen 2005-07-30
  • 打赏
  • 举报
回复
转换成2字节是有问题,可能造成有效数据丢失,造成不可预料的错误.
不过楼主强,顶!
leonchenjian 2005-07-30
  • 打赏
  • 举报
回复
更简单的不用位运算的方法:

byte[] byts = new byte[4];
int num = 65535;
byte b = 0;

for (int i = 0; i < 4; ++ i)
{
b = (byte)(num % 256);
byts[i] = b;
num /= 256;
}
for (int i = 0; i < 4; ++ i)
{
Response.Write(byts[i].ToString() + "<br/>");
//Console.WriteLine(byts[i].ToString());
}
leonchenjian 2005-07-30
  • 打赏
  • 举报
回复
不太明白楼主这样做的用意, 因为int是占用四个字节的, 如果转成2个byte, 那么势必要截去一部分

具体实现用位操作就可以了, 如下

// 在此示例中, int型变量num转换成4位byte, 需要注意的是, 如果要转换成2位byte, 那么int的最大值是65535
byte[] byts = new byte[4];
int num = 65535;
byte b = 0;

int ttlBitIdx = 0, bitIdx, bytIdx;
while (num != 0)
{
bytIdx = ttlBitIdx / 8;
bitIdx = ttlBitIdx - bytIdx * 8;
b = (byte)(num & 0x1);
byts[bytIdx] |= (byte)(b << bitIdx);

num >>= 1;
ttlBitIdx ++;
}

for (int i = 0; i < 4; ++ i)
{
Response.Write(byts[i].ToString() + "<br/>");
//Console.WriteLine(byts[i].ToString());
}

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧