精华内容
下载资源
问答
  • int类型转换成String 填充补0

    千次阅读 2014-10-20 16:02:04
    String.format("%010d", 25); 0代表前面要的字符 10代表字符串长度 d表示参数为整数类型

    String.format("%010d", 25);

     

    0代表前面要补的字符

    10代表字符串长度

    d表示参数为整数类型

    展开全文
  • 一个byte数组中的数值全部转换为16进制的int类型,最后以String输出,不足的位数补0,相邻的16进制数之间加了一个空格; String in; for (byte b : resBuffer) { in=Integer.toHexString(b&0xff);

    一个byte数组中的数值全部转换为16进制的int类型,最后以String输出,不足的位数补0,相邻的16进制数之间加了一个空格;

                String in;
                        for (byte b : resBuffer) {
                            in=Integer.toHexString(b&0xff);
                            if (in.length()==1) {
                                stringBuffer.append("0");
                            }
                            stringBuffer.append(in);
                            stringBuffer.append("\b");
                        }
                                        Log.d("log",stringBuffer.toString());
    展开全文
  • 0代表前面要的字符 10代表字符串长度 d表示参数为整数类型 String s = "Hello World!"; int i = 13 ; double d = 88.8 ; System.out.printf("整形数据i = %2+−10d\n字符串s=+−10d\n字符串s=

    String.format("%010d", 25);


    0代表前面要补的字符

    10代表字符串长度

    d表示参数为整数类型


    String s = "Hello World!";
    int i = 13 ;
    double d = 88.8 ;

    System.out.printf("整形数据i = %2 +10d\ns= +−10d\n字符串s=s \n浮点数据 d = %3$3.2f", s , i , d);
    System.out.printf("\n不足10为用0来补:%10d" , i);



    九九乘法表

    1. for (int i = 1; i < 10 ; i++) {  
    2.             for (int j = 1 ; j <= i ; j++) {  
    3.                 System.out.printf("%1 3d 3d∗-3d= %3$-3d\t" , j ,i , i * j);  
    4.             }  
    5.             System.out.println();  
    6.         }  


    输出时间


    System.out.printf("当前时间:%1 TY TY−Tm-%1 Td TdTH:%1 TM: TM:TS" , new Date());

    展开全文
  • 无意间翻看之间的代码,发现了一段难以理解的代码。 byte[] bs = digest.digest(origin.getBytes(Charset.forName(charsetName))) ; for (int i = 0; i ) { int c = bs[i] & 0xFF ;

    无意间翻看之间的代码,发现了一段难以理解的代码。

    复制代码
         byte[] bs = digest.digest(origin.getBytes(Charset.forName(charsetName))) ;  
              
            for (int i = 0; i < bs.length; i++) {  
                int c = bs[i] & 0xFF ;
                if(c < 16){ 
                    sb.append("0");  
                }  
                sb.append(Integer.toHexString(c)) ;  
            }  
            return sb.toString() ;  
    复制代码

    bs是由一段字符串经过MD5加密后,输出的byte数组。我起初难以理解为什么在接下来的循环中要将bs[i]&oxFF再复制给int类型呢?

    bs[i]是8位二进制,0xFF转化成8位二进制就是11111111,那么bs[i]&0xFF不是还是bs[i]本身吗?有意思吗?

     

    后来我又写了一个demo

    复制代码
    package jvmProject;
    
    public class Test {
    
        public static void main(String[] args) {
            byte[] a = new byte[10];
            a[0]= -127;
            System.out.println(a[0]);
            int c = a[0]&0xff;
            System.out.println(c);
        }
    }
    复制代码

    我先打印a[0],在打印a[0]&0xff后的值,本来我想结果应该都是-127.

    但是结果真的是出人意料啊!

    -127

    129

    到底是为什么呢?&0xff反而不对了。

     

    楼主真的是不懂啊,后来往补码那个方向想了想。

    记得在学计算机原理的时候,了解到计算机内的存储都是利用二进制的补码进行存储的。

    复习一下,原码反码补码这三个概念

    对于正数(00000001)原码来说,首位表示符号位,反码 补码都是本身

    对于负数(100000001)原码来说,反码是对原码除了符号位之外作取反运算即(111111110),补码是对反码作+1运算即(111111111)

    概念就这么简单。

     

    当将-127赋值给a[0]时候,a[0]作为一个byte类型,其计算机存储的补码是10000001(8位)。

    将a[0] 作为int类型向控制台输出的时候,jvm作了一个补位的处理,因为int类型是32位所以补位后的补码就是1111111111111111111111111 10000001(32位),这个32位二进制补码表示的也是-127.

    发现没有,虽然byte->int计算机背后存储的二进制补码由10000001(8位)转化成了1111111111111111111111111 10000001(32位)很显然这两个补码表示的十进制数字依然是相同的。

     

    但是我做byte->int的转化 所有时候都只是为了保持 十进制的一致性吗?

    不一定吧?好比我们拿到的文件流转成byte数组,难道我们关心的是byte数组的十进制的值是多少吗?我们关心的是其背后二进制存储的补码吧

    所以大家应该能猜到为什么byte类型的数字要&0xff再赋值给int类型,其本质原因就是想保持二进制补码的一致性。

    当byte要转化为int的时候,高的24位必然会补1,这样,其二进制补码其实已经不一致了,&0xff可以将高的24位置为0,低8位保持原样。这样做的目的就是为了保证二进制数据的一致性。

    当然拉,保证了二进制数据性的同时,如果二进制被当作byte和int来解读,其10进制的值必然是不同的,因为符号位位置已经发生了变化。

     

    象例2中,int c = a[0]&0xff;  a[0]&0xff=1111111111111111111111111 10000001&11111111=000000000000000000000000 10000001 ,这个值算一下就是129,

    所以c的输出的值就是129。有人问为什么上面的式子中a[0]不是8位而是32位,因为当系统检测到byte可能会转化成int或者说byte与int类型进行运算的时候,就会将byte的内存空间高位补1(也就是按符号位补位)扩充到32位,再参与运算。上面的0xff其实是int类型的字面量值,所以可以说byte与int进行运算。

     

    展开全文
  • 0代表前面要的字符 10代表字符串长度 d表示参数为整数类型 String s = "Hello World!"; int i = 13 ; double d = 88.8 ; System.out.printf("整形数据i = %2$+-10d \n字符串 s = %1$s \n浮点数据 d = ...
  • 我经常用到,所以记下。... * @param digits 要转换的二进制位数,位数不足则在前面补0 * @return 二进制的字符串形式 */ public static String toBinary(int num, int digits) { String cove...
  • c语言 int类型转换为string类型

    千次阅读 2020-04-11 16:27:07
    //int类型转换为string类型 //Int_i: 要转换的int类型 //String_s:转换后的string类型 void Int_To_Str(int Int_i,char *String_s) { int a; int b= 0; //用于计数 char *ptrfing,pBuffer[5]; //定义...
  • Java int转string 长度不足左补0

    万次阅读 2017-06-18 14:14:28
    String s=String.format("%010d", 123)//123为int类型0代表前面要的字符 10代表字符串长度,d表示参数为整数类型 String s1=new DecimalFormat("0000000000").format(123)//123为int类型 上面的s和s1输出结果...
  • Int类型数字前面自动加0

    千次阅读 2019-04-28 09:24:45
    Int类型数字前面自动加0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 开发工具与关键技术:Visual Studio/ JavaScript 作者:戴伟雄 撰写时间:2019年4月25日 ~~...
  • MySQL int类型的显示

    千次阅读 2019-12-09 18:04:49
    关于MySQL所有字段的字段长度、存储开销,可参考《MySQL所有类型的长度范围、存储开销(区分显示宽度/有无符号)》 既然是定长字段,那这个4就很扎眼了。它就是接下来要说的显示宽度:仅表示存储值不足4位时、显示...
  • C语言中的int类型

    万次阅读 2017-11-19 23:23:44
    1、在计算机中,一切都是二进制(0和1)。一个字节等于8个比特。也就是8个0或1位。 1Byte = 8bit2、原码、反码、补码: –正数的补码和反码是其本身。 –负数的补码是在其原码的基础上, 符号位不变, 其余各位...
  • 首先我们应该先明白为什么要这样存储ip而用varchar直接存储IP呢?...在MySQL中没有直接提供IP类型字段,但如果有两个函数可以把IP与最大长度为10位数字类型互转,所以使用int类型存储IP比varchar类型存储...
  • Java int转字符串 位数不够前面补0  最近在项目中需要用到编号,编号为四位数,从1开始,不足四位则前面补0,经测试,以下方法可以实现: ...4 表示四位数,2表示int类型的数字,编译后则输出结果为0002   ...
  • char类型和short,int类型之类的转换

    万次阅读 2017-04-28 10:38:06
    分析:直到尝试无符号字符型,才想起来数据的范围,char的范围是-128~127,而unsigned char的范围是0~255. 所以在做 char & short(int) 操作或者直接使用printf(“%x”,a)时,会自动补位。printf(“%x”,a)可以输出...
  • nil 是 interface、function、pointer、map、slice 和 channel 类型变量的默认初始值 不可以用"=="比较类型: slice(切片)、map(key-value集合)、func(函数) map的比较可以使用reflect.DeepEqual() m1 := map...
  • 面试的时候会遇到int类型和byte类型转换相关的问题。查阅相关资料后总结记录以备忘: C中int型占4个字节32位,byte型占1个字节8位。 1、int型转byte型 这种情况比较简单。取int型的低八位赋值给byte型即可 2、byte...
  • java 在进行变量之间的运算时,首先默然会提升到int类型, 但是在进行值得运算时先判断结果是否在相应的取值范围内。
  • char类型与int类型的相互转换、有无符号数的赋值 相关知识: 1.计算机中的一个unsigned char型数据表示0~255,而一个signed char型数据表示-128~+127,都是256的数字。这256个数字,在计算机的存储单元都是由0x00~...
  • 彻底了解mysql int类型

    千次阅读 2014-04-16 14:21:18
    mysql> create table t1(id int(40) unsigned zerofill); Query OK, 0 rows affected (0.01 sec) mysql> insert into t set id= 4294967295; Query OK, 1 row affected (0.00 sec) mysql> commit; Quer
  • char类型与int类型的相互转换、

    千次阅读 2019-04-04 10:56:07
    1.计算机中的一个unsigned char型数据表示0~255,而一个signed char型数据表示-128+127,都是256的数字。这256个数字,在计算机的存储单元都是由0x000xFF表示的。 2.这256个数字相同的部分是0+127,都用0x000x7F表示...
  • 为什么将 int 类型的12312341强转为 short 类型后,输出会是 -8427呢,而262199强转后却变成了55。再一顿查找计算机组成原理书后,终于恍然大悟。 解析 首先 int 类型是占32位,而 short 类型是占16位 在计算机中...
  • IP地址(IPV4)与int类型之间的转换

    千次阅读 2019-03-22 11:01:02
    IP地址(IPV4)与int类型之间的转换 一、前言 IP地址(IPV4)是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址(IPV4)通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,...
  • java 字节数组与int类型互相转换

    千次阅读 2018-05-01 10:46:39
    public class test { public static void main(String[] args) throws ParseException { int i=-6123; System.out.println(bytes2int(int2byteArray(i)));... public static byte[] int2byteArray(int i){
  • java 4位byte转为int类型

    千次阅读 2017-09-20 10:52:50
    由于要将一段C语言代码翻译...void ReadFile(Point data[][MAX_LENGTH],CString path,int n) { CString str=""; Initialize(data); FILE * fp; CString filename; int i,j; str.Format("%d",n-1); filename=pa
  • int类型变量初始值一般为0,范围[-2^31 , 2^31 -1] 即 [-2147483648,2147483647]。 16 位系统下,int 是 2 个字节;32 位,64 位的,int 是 4 个字节。 有符号整数情况下: 0xffffffff等于-1  负数时:...
  • 两个int类型的数据相加,有可能会出现超出int的表示范围。 来源:https://www.cnblogs.com/zhuyeshen/p/10685123.html /* 移位运算符: <<(左移) 规律:一个操作数进行左移运算的时候,结果就是等于操作数乘以...
  • int类型的数值表示数的范围

    千次阅读 2017-09-08 09:44:21
    int为4个字节:1字节=8位,所以int为32位在计算机中存储的二进制位数。...unsigned int 0~4294967295 如果有符号位的话,需要去除一个符号位,正数最大为:2的31次方-1 ,负数最小为:-2的31次
  • 当无符号数(int)和有符号数(unsignedint)进行算数运算时,有符号数(int)会先转换为无符号数(unsignedint),在进行相应的算数运算。...如果int类型是32位的情况下,输出结果为:4294967236 解析:运算过程先把-80的

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 123,842
精华内容 49,536
关键字:

int类型补0