请讲讲0X00这样的表示方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请讲讲0X00这样的表示方法相关的知识,希望对你有一定的参考价值。

我是一个对有些计算机知识很模糊的人,大家不要笑我啊~~~~
很多程序里都用类似0X00,0X01这样的方法表示数据,我晕了,这是用十六进制的表示二进制的么?
怎么感觉看起来很别扭,脑子里老想着先转换成十进制再转成二进制~~~
谢谢~~~~
有0X000001这样的么?

以0x开头的数据一般用来表示16进制的数,0x00就是0,0xFF就是255。看习惯就好了…… 参考技术A 用十六进制表示方便,也与寄存器和存储器的位数有关,一般都是8的倍数

算法笔记_220:猜算式(Java)

目录

1 问题描述

2 解决方案

 


1 问题描述

看下面的算式:

□□ x □□ = □□ x □□□

它表示:两个两位数相乘等于一个两位数乘以一个
三位数。

如果没有限定条件,这样的例子很多。

但目前的限定是:这9个方块,表示1~9的9个数字
,不包含0。
该算式中1至9的每个数字出现且只出现一次!

比如:
46 x 79 = 23 x 158
54 x 69 = 27 x 138
54 x 93 = 27 x 186
.....

请编程,输出所有可能的情况!

注意:
左边的两个乘数交换算同一方案,不要重复输出!
不同方案的输出顺序不重要

 

 

 

 


2 解决方案

 1 import java.util.ArrayList;
 2 
 3 public class Main {
 4     public static ArrayList<String> list = new ArrayList<String>();
 5     
 6     public void swap(int[] A, int i, int j) {
 7         int temp = A[i];
 8         A[i] = A[j];
 9         A[j] = temp;
10     }
11     
12     public void check(int[] A) {
13         int a = A[0] * 10 + A[1];
14         int b = A[2] * 10 + A[3];
15         int c = A[4] * 10 + A[5];
16         int d = A[6] * 100 + A[7] * 10 + A[8];
17         if(a > b) {
18             int temp = a;
19             a = b;
20             b = temp;
21         }
22         if(a * b == c * d) {
23             StringBuffer s = new StringBuffer("");
24             s.append(a);
25             s.append(" x ");
26             s.append(b);
27             s.append(" = ");
28             s.append(c);
29             s.append(" x ");
30             s.append(d);
31             if(!list.contains(s.toString()))
32                 list.add(s.toString());
33         }
34     }
35     
36     public void dfs(int[] A, int step) {
37         if(step == A.length) {
38             check(A);
39             return;
40         } else {
41             for(int i = step;i < A.length;i++) {
42                 swap(A, i, step);
43                 dfs(A, step + 1);
44                 swap(A, i, step);
45             }
46         }
47     }
48     
49     public static void main(String[] args) {
50         Main test = new Main();
51         int[] A = {1,2,3,4,5,6,7,8,9};
52         test.dfs(A, 0);
53         for(int i = 0;i < list.size();i++)
54             System.out.println(list.get(i));
55     }
56 }

 

 

运行结果:

46 x 79 = 23 x 158
54 x 69 = 27 x 138
54 x 93 = 27 x 186
58 x 67 = 29 x 134
58 x 69 = 23 x 174
58 x 73 = 29 x 146
58 x 96 = 32 x 174
63 x 74 = 18 x 259
64 x 79 = 32 x 158
73 x 96 = 12 x 584
76 x 98 = 14 x 532

 










以上是关于请讲讲0X00这样的表示方法的主要内容,如果未能解决你的问题,请参考以下文章

从0x00到0xFF的含义

算法竞赛进阶指南 0x00

数据结构树的概念与结构 | 树的几种常见表示方法

讲讲ViewGroup的setPersistentDrawingCache方法

讲讲ViewGroup的setPersistentDrawingCache方法

请给我讲讲在hibernate中,啥时候用“一对多”、“多对一”、“一对一”、“多对多”?