java代码实验无符号数 java代码实验无符号数字怎么写

java如何将一个byte类型转化为无符号数public class Test{
public static void main(String[] args) {
byte bytes = -42;
int result = bytes0xff;
System.out.println("无符号数: \t"+result);
System.out.println("2进制bit位: \t"+Integer.toBinaryString(result));
}
}
java中如何将有符号数转化成无符号数由于Java的原始类型里没有无符号类型,如果你需要某个宽度的无符号类型,恐怕得用下一个宽度的带符号类型来模拟 。例如你需要的是无符号的short,就得用int来模拟 。要达到这样的模拟很简单:
return s0x0FFFF;}但如果你坚持想要short的宽度(16位)的无符号类型,这个恐怕就……换种语言吧 , 嗯 。
无符号char型,在java 中怎么定义Java的设计者感到无符号整数是不必要的 。具体地说 , 他们感到无符号(unsigned)概念主要被用来指定高位(high-orderbit)状态,它定义了当int表示一个数字时的符号 。你将在第4章中看到,Java对高位含义的管理是不同的,它通过增加一个专门的“无符号右移”运算符来管理高位 。这样,就不需要无符号整数了 。
所以JAVA是没有无符号类型的
Java为什么不支持"无符号型基本数据我写的 Java 程序如下:(程序功能:列出 200000 内的所有质数)
//计算质数
public class PrimeNumber {
public static void main(String args[]) {
long startTime = System.currentTimeMillis();
int count = 2;
System.out.print("2,3,");
boolean isPN = true;
int max = 1000*200;
for(int i=4;imax+1;i++) {
isPN = true;
int n = (int)(i/2)+1;
for(int j=2;jn;j++) {
if(i%j == 0) {
isPN = false;
break;
}
}
if(isPN) {
System.out.print(i+",");
count++;
}
}
long endTime = System.currentTimeMillis();
System.out.println ("");
System.out.println ("共用时间:"+(endTime-startTime)+"毫秒");
System.out.println ("共找到:"+count+"个质数");
}
}
我朋友写的C#程序如下:
using System;
class test
{
static void Main() {
DateTime t1 = DateTime.Now;
cal(200000);
DateTime t2 = DateTime.Now;
TimeSpan t = t2-t1;
Console.WriteLine("时间为:{0} 毫秒\n",t.TotalMilliseconds.ToString());
Console.ReadLine();
}
static void cal(uint x)
{
Console.Write("2,");
uint sum=1;
for(uint a=3;ax+1;a++)
{
bool flag=true;
uint n = (uint)(a/2)+1;
for(uint b=2;bn;b++)
{
if(a%b!=0) continue;
flag=false;
break;
}
if(flag)
{
Console.Write(a+",");
sum++;
}
}
Console.WriteLine("\n {0} 以内共有 {1} 个质数\n",x,sum);
}
}
在我自己的机器上测试(机器配置:P42.4B+512M+WIN2003)
Java 为 JDK1.4.2_05
C# 为 WIN2003 自带的 .net 1.1
比较结果真令人沮丧:
Java 程序使用了: 13M 内存 + 22 秒的时间
C# 程序使用了: 8M 内存 + 12 秒的时间
“不会吧,SUN 怎么也是做了快10年的虚拟机了 , 怎么会比 MS 的 .net 虚拟机慢这么多呢?”
我不相信 。于是我把自己的 Java 程序改成了 C#程序,代码如下:
//计算质数
using System;
class PrimeNumber {
static void Main() {
DateTime t1 = DateTime.Now;
int count = 2;
Console.Write("2,3,");
bool isPN = true;
int max = 1000*200;
for(int i=4;imax+1;i++) {
isPN = true;
int n = (int)(i/2)+1;
for(int j=2;jn;j++) {
【java代码实验无符号数 java代码实验无符号数字怎么写】if(i%j == 0) {
isPN = false;
break;
}
}
if(isPN) {

推荐阅读