(byte)300实际值为44

java核心卷一 中文 42页 说: (byte)300实际值为44

下面看看怎么转换:

		System.out.println((byte)300);
		System.out.println(Integer.toBinaryString(300));//输出100101100
		//第二步
		BigInteger i=new BigInteger("00101100",2);//byte只有8位 截取低8位
		System.out.println(i.intValue());//输出44

第二步用到

BigInteger

可以在各种进制间方便转换吗?原来写那么多方法都是白费。只是输入应该是一个字符串。

先想如果java支持0b110101010来表示二进制的话 就直接

System.out.print(0b110101010)

就好,可是不支持 说是因为太长。

百度 java二进制转十进制    找到: 点击打开链接

摘抄备份:

java 二进制转为十进制,十进制转为二进制

2013-02-07 19:48:23|  分类:
Java俱乐部 |举报
|字号 订阅

import java.math.BigInteger;

public class Hello{

public static void main(String args[]){

//10进制->2进制

String a = "121";//输入数值

BigInteger src = new BigInteger(a);//转换为BigInteger类型

System.out.println(src.toString(2));//转换为2进制并输出

//2进制->10进制

String b = "1111001";//输入数值

BigInteger src1= new BigInteger(b,2);//转换为BigInteger类型

System.out.println(src1.toString());//转换为10进制并输出结果

/*
由此可见,有2点要注意:

1. BigInteger的构造函数

BigInteger(String src)默认参数字符串为10进制数值

BigInteger(String src, int x)第2个参数x是指定第一个参数src的进制类型

2. toString方法

toString()默认把数值按10进制数值转化为字符串。

toString(int x)把数值按参数x的进制转化为字符串*/

}

}

另:

将十进制转换成二进制的算法如下:

1.给定一个数;

2.根据十进制转换二进制的思想:把这个数除以2若为单数则为1,为偶数则为0,直到最后一个数为1为止。所以我们要做的就是用你给定的这个数除以2,如果结果为奇数则r=1,否则r=0;如此循环下去,直到这个数〉=1。

3.然后把r的值送到一个数组里面。最后把这个数组里面的内容从后面打印出来就可以了。

import java.util.Scanner;

public class Hi {

public static void main(String[] args) {

Scanner sc=new Scanner(System.in);

System.out.println("請輸入一個十進制需要轉換為二進制的正整數");

int n=sc.nextInt();

int r;

int i=0;

int[] a=new int[20];

do{

if(n%2==1)

r=1;

else

r=0;

a[i]=r;

n/=2;

i++;

}while(n>0);

System.out.println("十進制轉換為二進制後:");

for(int j=i-1;j>=0;j--){

System.out.print(a[j]);

}

}

}

另:

二进制转换成十进制

import java.util.*;

public class Hello{

public static void main(String[] args){

Scanner sc = new Scanner(System.in);

System.out.print("请输入一个二进制数");

int s = sc.nextInt();

int sum = 0;

int i = 0;

while(s != 0){

sum = (int) (sum + s % 10 * (Math.pow(2,i)));

s = s / 10;

i ++;

}

System.out.println("转换为十进制后为:" + sum);

}

}

(byte)300实际值为44

时间: 2024-10-13 03:53:50

(byte)300实际值为44的相关文章

java中为什么byte的取值范围是-128到+127

概念:java中用补码表示二进制数,补码的最高位是符号位,最高位为“0”表示正数,最高位为“1”表示负数.正数补码为其本身:负数补码为其绝对值各位取反加1:例如:+21,其二进制表示形式是00010101,则其补码同样为00010101-21,按照概念其绝对值为00010101,各位取反为11101010,再加1为11101011,即-21的二进制表示形式为11101011 步骤:1.byte为一字节8位,最高位是符号位,即最大值是01111111,因正数的补码是其本身,即此正数为0111111

byte的取值范围是-128~127,那么包含-128和127吗?

本帖最后由 王德升老师 于 2019-12-27 17:56 编辑 byte的取值范围为什么是-128~127?如果面试官问你取值范围包含127吗?1. 首先我们知道Java中byte类型是1个字节占8位的.最高位是符号位(正数或者负数),其余7位是数值位.     2. [AppleScript] 纯文本查看 复制代码 ? 1 2 byte b1 = 100; byte b2 = -100; 这里报错吗?不报错!3. [AppleScript] 纯文本查看 复制代码 ? 1 2 3 4 byt

byte的取值范围为什么是-128~127

直接给总结:计算机规定了0000 0000 代表0,1000 0000代表的-0没有意义,必须找个~127~127之外的数和它对应,「人为规定-0就是-128」,而且这么做完美适合计算机做减法运算. 来我们一步步分析分析: 1.byte占用8位,每位用0或1表示,能够表示256(2^8)个数据. 2.这8位分为符号位(最高位)和数值位(剩余七位),符号位0表示正数,1表示负数. 3.按上一步的理解,容易得到(+127:0111 1111.+1:0000 0001.+0:0000 0000.-0:

Java核心技术 卷Ⅰ 基础知识(1)

第三章 Java的基本程序设计结构 Java对大小写敏感 命名规范为骆驼命名法,不能使用保留字 main方法必须声明为public 如果main方法正常退出,java应用程序的退出代码为0,表示成功运行了程序.如果希望终止程序时返回其他代码,那就需要调用System.exit方法. Java通用语法是 object.method(parameter),这等价于函数调用 System.out.print输出不换行 三种注释方式 //. /*  */(不能嵌套).第三种可以用来自动生成文档 Java

Java Byte取值范围

Java Byte 的取值范围大家都知道(-128 ~ 127),那么-128 和 127 这两个数是怎么计算的呢? #大学知识回顾: 概念:负数的补码是该 数 绝 对 值 的 原 码 按 位 取 反 ,然 后 对 整个数 加 1 在计算机内,定点数有3种表示法:原码.反码和补码 [原码]就是前面所介绍的二进制定点表示法,即最高位为符号位,"0"表示正,"1"表示负,其余位表示数值的大小. [反码]表示法规定:正数的反码与其原码相同:负数的反码是对其原码逐位取反,但

java中byte取值范围为什么是 -128到127

概念:java中用补码表示二进制数,补码的最高位是符号位,最高位为"0"表示正数,最高位为"1"表示负数.正数补码为其本身:负数补码为其绝对值各位取反加1:例如:+21,其二进制表示形式是00010101,则其补码同样为00010101-21,按照概念其绝对值为00010101,各位取反为11101010,再加1为11101011,即-21的二进制表示形式为11101011 步骤:1.byte为一字节8位,最高位是符号位,即最大值是01111111,因正数的补码是其

关于JAVA中Byte类型的取值范围的推论(*零为正数,-128在计算机中的表示方法...)

先看一段推理<*一切都是在8个比特位的前提下,讨论二进制的符号位,溢出等等,才有意义*> +124:0111 1100 -124:1000 0100 +125:0111 1101 -125:1000 0011 +126:0111 1110 -126:1000 0010 +127:0111 1111 -127:1000 0001 +128:0 1000 0000   -128:1000 0000 从上述过程对比可以看出:+128是在127的基础上加1得到,但是会造成溢出(JAVA中byte的大小

巨人花 300 億元買的毛里塔尼亞遊戲企業,是什麼來頭?

史玉柱和他有錢的朋友也許很看重棋牌類游戲的市集.花new balance 996大價錢合併國外遊戲廠家的土耳其巨頭里,除了騰訊和阿里巴巴,又多了個巨人網絡.巨人網絡選購的是一家處於不丹的遊戲企業Playtika,價值是44 億歐元現金,合計300 億大眾幣:為了可以更便捷敏捷地經由批准手續,史玉柱先是組建財團,經過一家名為Alpha 的品牌採購了Playtika:之後再經由在這之前借殼問世的殼世紀遊輪完成對Alpha 的全資購買.讓史玉柱大費周章收買下的這家中國香港遊戲品牌Playtika,原來

C#中的基元类型、值类型和引用类型

C# 中的基元类型.值类型和引用类型 1. 基元类型(Primitive Type) 编译器直接支持的类型称为基元类型.基元类型可以直接映射到 FCL 中存在的类型.例如,int a = 10 中的 int 就是基元类型,其对应着 FCL 中的 System.Int32,上面的代码你完全可以写作System.Int32 a = 10,编译器将生成完全形同的 IL,也可以理解为 C# 编译器为源代码文件中添加了 using int = System.Int32. 1.1 基元类型的算术运算的溢出检