精华内容
下载资源
问答
  • *#include #include <Windows.h> #include using namespace std;... //二进制数据 int q = 0; // int p = 1; cout << "请输入一个人二进制数据: "; cin >> str; for(int i=str.le...

    在这里插入图片描述
    *#include
    #include <Windows.h>
    #include

    using namespace std;

    int main(void) {
    string str; //二进制数据
    int q = 0; //
    int p = 1;

    cout << "请输入一个人二进制数据: ";
    cin >> str;
    
    for(int i=str.length()-1; i>=0; --i) {
    	int j = str[i] - '0';
    	    q += j*p;
    		p *= 2;
    }
    
    cout << "q==" << q << endl;
    
    /**
    
    
    for (int i=str.length()-1; i>=0; i--) {
    	int x = str[i] - '0';  
    	s += x * p;
    	p *= 2;
    }
    //假设:str = 1010  s = 0   p = 1    x = 0
    
    // 1.   0-0 = 0       x = 0
    // 2.   0*1 = 0       s = 0     0+0= 0=s 
    // 3.   1*2 = 2       p = 2
    // s = 0  p = 2
    
    // 1.   1-0 = 1       x = 1
    // 2.   1*2 = 2       s = 2     0+2= 2=s
    // 3.   2*2 = 4       p = 4
    // s = 2  p = 4  
    
    // 1.     0-0 = 0       x = 0
    // 2 .    0*4 = 0       s = 2    2+0= 2=s
    // 3.     4*2 = 8       p = 8
    // s = 2  p = 8
    
    // 1.   1-0 = 0       x = 1 
    // 2.   1*8 = 0       s = 8      2+8= 10=s
    // 3.   8*2 = 4       p = 16
    **/
    system("pause");
    return 0;
    

    }
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 求将任意10进制数转为由字母A-Z表示的算法,其中A->0,B->1,…,Z->25。注意:A对应于0而不是1。星期六在家蹲了一天了,还没搞出来,希望高人能给个算法。为了方便大家验证算法的正确性,先推算了一个对照表...

    在ASCII码表中,A的ACII码是65,Z的ASCII码是90。

    求将任意10进制数转为由字母A-Z表示的算法,其中A->0,B->1,…,Z->25。

    注意:A对应于0而不是1。

    星期六在家蹲了一天了,还没搞出来,希望高人能给个算法。

    为了方便大家验证算法的正确性,先推算了一个对照表供大家参考。

    【样例数据】

    A    B    C    D    E    F    G    H    I    J    K    L    M    N    O    P    Q    R    S    T    U    V    W    X    Y    Z

    0    1    2    3    4    5    6    7    8    9    10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25

    AA   AB   AC   AD   AE   AF   AG   AH   AI   AJ   AK   AL   AM   AN   AO   AP   AQ   AR   AS   AT   AU   AV   AW   AX   AY   AZ

    26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51

    BA   BB   BC   BD   BE   BF   BG   BH   BI   BJ   BK   BL   BM   BN   BO   BP   BQ   BR   BS   BT   BU   BV   BW   BX   BY   BZ

    52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77

    CA   CB   CC   CD   CE   CF   CG   CH   CI   CJ   CK   CL   CM   CN   CO   CP   CQ   CR   CS   CT   CU   CV   CW   CX   CY   CZ

    78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100  101  102  103

    DA   DB   DC   DD   DE   DF   DG   DH   DI   DJ   DK   DL   DM   DN   DO   DP   DQ   DR   DS   DT   DU   DV   DW   DX   DY   DZ

    104  105  106  107  108  109  110  111  112  113  114  115  116  117  118  119  120  121  122  123  124  125  126  127  128  129

    EA   EB   EC   ED   EE   EF   EG   EH   EI   EJ   EK   EL   EM   EN   EO   EP   EQ   ER   ES   ET   EU   EV   EW   EX   EY   EZ

    130  131  132  133  134  135  136  137  138  139  140  141  142  143  144  145  146  147  148  149  150  151  152  153  154  155

    FA   FB   FC   FD   FE   FF   FG   FH   FI   FJ   FK   FL   FM   FN   FO   FP   FQ   FR   FS   FT   FU   FV   FW   FX   FY   FZ

    156  157  158  159  160  161  162  163  164  165  166  167  168  169  170  171  172  173  174  175  176  177  178  179  180  181

    GA   GB   GC   GD   GE   GF   GG   GH   GI   GJ   GK   GL   GM   GN   GO   GP   GQ   GR   GS   GT   GU   GV   GW   GX   GY   GZ

    182  183  184  185  186  187  188  189  190  191  192  193  194  195  196  197  198  199  200  201  202  203  204  205  206  207

    HA   HB   HC   HD   HE   HF   HG   HH   HI   HJ   HK   HL   HM   HN   HO   HP   HQ   HR   HS   HT   HU   HV   HW   HX   HY   HZ

    208  209  210  211  212  213  214  215  216  217  218  219  220  221  222  223  224  225  226  227  228  229  230  231  232  233

    IA   IB   IC   ID   IE   IF   IG   IH   II   IJ   IK   IL   IM   IN   IO   IP   IQ   IR   IS   IT   IU   IV   IW   IX   IY   IZ

    234  235  236  237  238  239  240  241  242  243  244  245  246  247  248  249  250  251  252  253  254  255  256  257  258  259

    JA   JB   JC   JD   JE   JF   JG   JH   JI   JJ   JK   JL   JM   JN   JO   JP   JQ   JR   JS   JT   JU   JV   JW   JX   JY   JZ

    260  261  262  263  264  265  266  267  268  269  270  271  272  273  274  275  276  277  278  279  280  281  282  283  284  285

    KA   KB   KC   KD   KE   KF   KG   KH   KI   KJ   KK   KL   KM   KN   KO   KP   KQ   KR   KS   KT   KU   KV   KW   KX   KY   KZ

    286  287  288  289  290  291  292  293  294  295  296  297  298  299  300  301  302  303  304  305  306  307  308  309  310  311

    LA   LB   LC   LD   LE   LF   LG   LH   LI   LJ   LK   LL   LM   LN   LO   LP   LQ   LR   LS   LT   LU   LV   LW   LX   LY   LZ

    312  313  314  315  316  317  318  319  320  321  322  323  324  325  326  327  328  329  330  331  332  333  334  335  336  337

    MA   MB   MC   MD   ME   MF   MG   MH   MI   MJ   MK   ML   MM   MN   MO   MP   MQ   MR   MS   MT   MU   MV   MW   MX   MY   MZ

    338  339  340  341  342  343  344  345  346  347  348  349  350  351  352  353  354  355  356  357  358  359  360  361  362  363

    NA   NB   NC   ND   NE   NF   NG   NH   NI   NJ   NK   NL   NM   NN   NO   NP   NQ   NR   NS   NT   NU   NV   NW   NX   NY   NZ

    364  365  366  367  368  369  370  371  372  373  374  375  376  377  378  379  380  381  382  383  384  385  386  387  388  389

    OA   OB   OC   OD   OE   OF   OG   OH   OI   OJ   OK   OL   OM   ON   OO   OP   OQ   OR   OS   OT   OU   OV   OW   OX   OY   OZ

    390  391  392  393  394  395  396  397  398  399  400  401  402  403  404  405  406  407  408  409  410  411  412  413  414  415

    PA   PB   PC   PD   PE   PF   PG   PH   PI   PJ   PK   PL   PM   PN   PO   PP   PQ   PR   PS   PT   PU   PV   PW   PX   PY   PZ

    416  417  418  419  420  421  422  423  424  425  426  427  428  429  430  431  432  433  434  435  436  437  438  439  440  441

    QA   QB   QC   QD   QE   QF   QG   QH   QI   QJ   QK   QL   QM   QN   QO   QP   QQ   QR   QS   QT   QU   QV   QW   QX   QY   QZ

    442  443  444  445  446  447  448  449  450  451  452  453  454  455  456  457  458  459  460  461  462  463  464  465  466  467

    RA   RB   RC   RD   RE   RF   RG   RH   RI   RJ   RK   RL   RM   RN   RO   RP   RQ   RR   RS   RT   RU   RV   RW   RX   RY   RZ

    468  469  470  471  472  473  474  475  476  477  478  479  480  481  482  483  484  485  486  487  488  489  490  491  492  493

    SA   SB   SC   SD   SE   SF   SG   SH   SI   SJ   SK   SL   SM   SN   SO   SP   SQ   SR   SS   ST   SU   SV   SW   SX   SY   SZ

    494  495  496  497  498  499  500  501  502  503  504  505  506  507  508  509  510  511  512  513  514  515  516  517  518  519

    TA   TB   TC   TD   TE   TF   TG   TH   TI   TJ   TK   TL   TM   TN   TO   TP   TQ   TR   TS   TT   TU   TV   TW   TX   TY   TZ

    520  521  522  523  524  525  526  527  528  529  530  531  532  533  534  535  536  537  538  539  540  541  542  543  544  545

    UA   UB   UC   UD   UE   UF   UG   UH   UI   UJ   UK   UL   UM   UN   UO   UP   UQ   UR   US   UT   UU   UV   UW   UX   UY   UZ

    546  547  548  549  550  551  552  553  554  555  556  557  558  559  560  561  562  563  564  565  566  567  568  569  570  571

    VA   VB   VC   VD   VE   VF   VG   VH   VI   VJ   VK   VL   VM   VN   VO   VP   VQ   VR   VS   VT   VU   VV   VW   VX   VY   VZ

    572  573  574  575  576  577  578  579  580  581  582  583  584  585  586  587  588  589  590  591  592  593  594  595  596  597

    WA   WB   WC   WD   WE   WF   WG   WH   WI   WJ   WK   WL   WM   WN   WO   WP   WQ   WR   WS   WT   WU   WV   WW   WX   WY   WZ

    598  599  600  601  602  603  604  605  606  607  608  609  610  611  612  613  614  615  616  617  618  619  620  621  622  623

    XA   XB   XC   XD   XE   XF   XG   XH   XI   XJ   XK   XL   XM   XN   XO   XP   XQ   XR   XS   XT   XU   XV   XW   XX   XY   XZ

    624  625  626  627  628  629  630  631  632  633  634  635  636  637  638  639  640  641  642  643  644  645  646  647  648  649

    YA   YB   YC   YD   YE   YF   YG   YH   YI   YJ   YK   YL   YM   YN   YO   YP   YQ   YR   YS   YT   YU   YV   YW   YX   YY   YZ

    650  651  652  653  654  655  656  657  658  659  660  661  662  663  664  665  666  667  668  669  670  671  672  673  674  675

    ZA   ZB   ZC   ZD   ZE   ZF   ZG   ZH   ZI   ZJ   ZK   ZL   ZM   ZN   ZO   ZP   ZQ   ZR   ZS   ZT   ZU   ZV   ZW   ZX   ZY   ZZ

    676  677  678  679  680  681  682  683  684  685  686  687  688  689  690  691  692  693  694  695  696  697  698  699  700  701

    AAA  AAB  AAC  AAD  AAE  AAF  AAG  AAH  AAI  AAJ  AAK  AAL  AAM  AAN  AAO  AAP  AAQ  AAR  AAS  AAT  AAU  AAV  AAW  AAX  AAY  AAZ

    702  703  704  705  706  707  708  709  710  711  712  713  714  715  716  717  718  719  720  721  722  723  724  725  726  727

    谢谢大家。

    解决方案

    5

    既然 A 对应 0

    那么 BA 对应 26 才对吧?

    伪码

    n = 26;

    s = "";

    while(n > 0) {

    s = chr((n % 26) + 65) + s;

    n = intval(n / 26);

    }

    10

    static string GetConvert(uint number)

    {

    StringBuilder tmp = new StringBuilder();

    do

    {

    uint tmpInt = number % 26;

    tmp.Insert(0, (char)(tmpInt + 65));

    number = number / 26;

    }

    while (number > 0);

    return tmp.ToString();

    }

    15

    static string GetConvert(uint number)

    {

    StringBuilder tmp = new StringBuilder();

    uint tmpInt = number % 26;

    tmp.Append((char)(tmpInt + 65));

    number = number / 26;

    while (number > 0)

    {

    tmpInt = number % 26;

    number = number / 26;

    if (tmpInt != 0)

    {

    tmp.Insert(0, (char)(tmpInt + 64));

    }

    else

    {

    if(number>0)

    {

    tmp.Insert(0, "Z");

    number--;

    }

    }

    }

    return tmp.ToString();

    }

    按你的需求改的,反正不是正常的进制……

    至少你的例子都满足了

    50

    嗯,这里凡是第2位以上的A是都从1开始表示的,不是从0开始表示的。只要注意这个转换就行了。

    好吧,不叫“26进制”了,暂且叫做“AAA进制吧”。写一个可以转换“回来”的:

    using System;

    namespace ConsoleApplication1

    {

    class Program

    {

    static void Main(string[] args)

    {

    for (var i = 0; i <= 727; i++)

    {

    var x = 转换AAA进制(i);

    Console.Write("{0}={1}={2}\t", i, x, 转换AAA进制(x));

    }

    Console.ReadKey();

    }

    private static string 转换AAA进制(int x)

    {

    if (x 

    return string.Empty;

    var a = x / 26;

    var b = x % 26;

    return 转换AAA进制(a - 1) + (char)(b + "A");

    }

    private static int 转换AAA进制(string x)

    {

    return AAA(x, x.Length - 1);

    }

    private static int AAA(string x, int end)

    {

    var n = x[end] - "A";

    if (end == 0)

    return n;

    return (AAA(x, end - 1) + 1) * 26 + n;

    }

    }

    }

    CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明求将任意10进制数字转为26进制字母的算法!

    展开全文
  • /** 数字大写字母(26进制)1-&gt;A 2-&gt;B * @since JDK 1.8 */ public static String numCovertLetter(int num) { if (num &lt;= 0) { throw new RuntimeException("参数必须大于0"...
        /** 数字转大写字母(26进制)1->A 2->B
         * @since JDK 1.8  
         */
        public static String numCovertLetter(int num) {
            if (num <= 0) {
                throw new RuntimeException("参数必须大于0");
            }
            String str = "";
            while (num > 0) {
                int residue = num % 26;
                if (residue == 0) {
                    residue = 26;
                }
                str = String.valueOf((char) (residue + '@')) + str;
                num = (num - residue) / 26;
            }
            return str;
        }
        
        /** 大写字母转数字(26进制->10进制)A->1 B->2
         * @since JDK 1.8  
         */
        public static Integer letterCovertnum(String letter) {
            if (letter == null || letter.isEmpty()) {
                return 0;
            }
            Integer result = 0;
            char[] charArray = letter.toCharArray();
            int count = 0;
            for (int i = letter.length() - 1; i >= 0; i--, count++) {
                char c = charArray[i];
                double pow = (c - '@') * Math.pow(26, count);
                result += (int) pow;
            }
            return result;
        }
        
        public static void main(String[] args) throws Exception {
            System.out.println(letterCovertnum("ALK"));
            for (int i = 1; i < 1000; i++) {
                System.out.print(numCovertLetter(i));
    //            System.out.print(" ");
                System.out.print("_" + i + " ");
                if (i % 26 == 0) {
                    System.out.println("");
                }
            }
        }

    控制台输出结果

    999
    A_1 B_2 C_3 D_4 E_5 F_6 G_7 H_8 I_9 J_10 K_11 L_12 M_13 N_14 O_15 P_16 Q_17 R_18 S_19 T_20 U_21 V_22 W_23 X_24 Y_25 Z_26 
    AA_27 AB_28 AC_29 AD_30 AE_31 AF_32 AG_33 AH_34 AI_35 AJ_36 AK_37 AL_38 AM_39 AN_40 AO_41 AP_42 AQ_43 AR_44 AS_45 AT_46 AU_47 AV_48 AW_49 AX_50 AY_51 AZ_52 
    BA_53 BB_54 BC_55 BD_56 BE_57 BF_58 BG_59 BH_60 BI_61 BJ_62 BK_63 BL_64 BM_65 BN_66 BO_67 BP_68 BQ_69 BR_70 BS_71 BT_72 BU_73 BV_74 BW_75 BX_76 BY_77 BZ_78 
    CA_79 CB_80 CC_81 CD_82 CE_83 CF_84 CG_85 CH_86 CI_87 CJ_88 CK_89 CL_90 CM_91 CN_92 CO_93 CP_94 CQ_95 CR_96 CS_97 CT_98 CU_99 CV_100 CW_101 CX_102 CY_103 CZ_104 
    DA_105 DB_106 DC_107 DD_108 DE_109 DF_110 DG_111 DH_112 DI_113 DJ_114 DK_115 DL_116 DM_117 DN_118 DO_119 DP_120 DQ_121 DR_122 DS_123 DT_124 DU_125 DV_126 DW_127 DX_128 DY_129 DZ_130 
    EA_131 EB_132 EC_133 ED_134 EE_135 EF_136 EG_137 EH_138 EI_139 EJ_140 EK_141 EL_142 EM_143 EN_144 EO_145 EP_146 EQ_147 ER_148 ES_149 ET_150 EU_151 EV_152 EW_153 EX_154 EY_155 EZ_156 
    FA_157 FB_158 FC_159 FD_160 FE_161 FF_162 FG_163 FH_164 FI_165 FJ_166 FK_167 FL_168 FM_169 FN_170 FO_171 FP_172 FQ_173 FR_174 FS_175 FT_176 FU_177 FV_178 FW_179 FX_180 FY_181 FZ_182 
    GA_183 GB_184 GC_185 GD_186 GE_187 GF_188 GG_189 GH_190 GI_191 GJ_192 GK_193 GL_194 GM_195 GN_196 GO_197 GP_198 GQ_199 GR_200 GS_201 GT_202 GU_203 GV_204 GW_205 GX_206 GY_207 GZ_208 
    HA_209 HB_210 HC_211 HD_212 HE_213 HF_214 HG_215 HH_216 HI_217 HJ_218 HK_219 HL_220 HM_221 HN_222 HO_223 HP_224 HQ_225 HR_226 HS_227 HT_228 HU_229 HV_230 HW_231 HX_232 HY_233 HZ_234 
    IA_235 IB_236 IC_237 ID_238 IE_239 IF_240 IG_241 IH_242 II_243 IJ_244 IK_245 IL_246 IM_247 IN_248 IO_249 IP_250 IQ_251 IR_252 IS_253 IT_254 IU_255 IV_256 IW_257 IX_258 IY_259 IZ_260 
    JA_261 JB_262 JC_263 JD_264 JE_265 JF_266 JG_267 JH_268 JI_269 JJ_270 JK_271 JL_272 JM_273 JN_274 JO_275 JP_276 JQ_277 JR_278 JS_279 JT_280 JU_281 JV_282 JW_283 JX_284 JY_285 JZ_286 
    KA_287 KB_288 KC_289 KD_290 KE_291 KF_292 KG_293 KH_294 KI_295 KJ_296 KK_297 KL_298 KM_299 KN_300 KO_301 KP_302 KQ_303 KR_304 KS_305 KT_306 KU_307 KV_308 KW_309 KX_310 KY_311 KZ_312 
    LA_313 LB_314 LC_315 LD_316 LE_317 LF_318 LG_319 LH_320 LI_321 LJ_322 LK_323 LL_324 LM_325 LN_326 LO_327 LP_328 LQ_329 LR_330 LS_331 LT_332 LU_333 LV_334 LW_335 LX_336 LY_337 LZ_338 
    MA_339 MB_340 MC_341 MD_342 ME_343 MF_344 MG_345 MH_346 MI_347 MJ_348 MK_349 ML_350 MM_351 MN_352 MO_353 MP_354 MQ_355 MR_356 MS_357 MT_358 MU_359 MV_360 MW_361 MX_362 MY_363 MZ_364 
    NA_365 NB_366 NC_367 ND_368 NE_369 NF_370 NG_371 NH_372 NI_373 NJ_374 NK_375 NL_376 NM_377 NN_378 NO_379 NP_380 NQ_381 NR_382 NS_383 NT_384 NU_385 NV_386 NW_387 NX_388 NY_389 NZ_390 
    OA_391 OB_392 OC_393 OD_394 OE_395 OF_396 OG_397 OH_398 OI_399 OJ_400 OK_401 OL_402 OM_403 ON_404 OO_405 OP_406 OQ_407 OR_408 OS_409 OT_410 OU_411 OV_412 OW_413 OX_414 OY_415 OZ_416 
    PA_417 PB_418 PC_419 PD_420 PE_421 PF_422 PG_423 PH_424 PI_425 PJ_426 PK_427 PL_428 PM_429 PN_430 PO_431 PP_432 PQ_433 PR_434 PS_435 PT_436 PU_437 PV_438 PW_439 PX_440 PY_441 PZ_442 
    QA_443 QB_444 QC_445 QD_446 QE_447 QF_448 QG_449 QH_450 QI_451 QJ_452 QK_453 QL_454 QM_455 QN_456 QO_457 QP_458 QQ_459 QR_460 QS_461 QT_462 QU_463 QV_464 QW_465 QX_466 QY_467 QZ_468 
    RA_469 RB_470 RC_471 RD_472 RE_473 RF_474 RG_475 RH_476 RI_477 RJ_478 RK_479 RL_480 RM_481 RN_482 RO_483 RP_484 RQ_485 RR_486 RS_487 RT_488 RU_489 RV_490 RW_491 RX_492 RY_493 RZ_494 
    SA_495 SB_496 SC_497 SD_498 SE_499 SF_500 SG_501 SH_502 SI_503 SJ_504 SK_505 SL_506 SM_507 SN_508 SO_509 SP_510 SQ_511 SR_512 SS_513 ST_514 SU_515 SV_516 SW_517 SX_518 SY_519 SZ_520 
    TA_521 TB_522 TC_523 TD_524 TE_525 TF_526 TG_527 TH_528 TI_529 TJ_530 TK_531 TL_532 TM_533 TN_534 TO_535 TP_536 TQ_537 TR_538 TS_539 TT_540 TU_541 TV_542 TW_543 TX_544 TY_545 TZ_546 
    UA_547 UB_548 UC_549 UD_550 UE_551 UF_552 UG_553 UH_554 UI_555 UJ_556 UK_557 UL_558 UM_559 UN_560 UO_561 UP_562 UQ_563 UR_564 US_565 UT_566 UU_567 UV_568 UW_569 UX_570 UY_571 UZ_572 
    VA_573 VB_574 VC_575 VD_576 VE_577 VF_578 VG_579 VH_580 VI_581 VJ_582 VK_583 VL_584 VM_585 VN_586 VO_587 VP_588 VQ_589 VR_590 VS_591 VT_592 VU_593 VV_594 VW_595 VX_596 VY_597 VZ_598 
    WA_599 WB_600 WC_601 WD_602 WE_603 WF_604 WG_605 WH_606 WI_607 WJ_608 WK_609 WL_610 WM_611 WN_612 WO_613 WP_614 WQ_615 WR_616 WS_617 WT_618 WU_619 WV_620 WW_621 WX_622 WY_623 WZ_624 
    XA_625 XB_626 XC_627 XD_628 XE_629 XF_630 XG_631 XH_632 XI_633 XJ_634 XK_635 XL_636 XM_637 XN_638 XO_639 XP_640 XQ_641 XR_642 XS_643 XT_644 XU_645 XV_646 XW_647 XX_648 XY_649 XZ_650 
    YA_651 YB_652 YC_653 YD_654 YE_655 YF_656 YG_657 YH_658 YI_659 YJ_660 YK_661 YL_662 YM_663 YN_664 YO_665 YP_666 YQ_667 YR_668 YS_669 YT_670 YU_671 YV_672 YW_673 YX_674 YY_675 YZ_676 
    ZA_677 ZB_678 ZC_679 ZD_680 ZE_681 ZF_682 ZG_683 ZH_684 ZI_685 ZJ_686 ZK_687 ZL_688 ZM_689 ZN_690 ZO_691 ZP_692 ZQ_693 ZR_694 ZS_695 ZT_696 ZU_697 ZV_698 ZW_699 ZX_700 ZY_701 ZZ_702 
    AAA_703 AAB_704 AAC_705 AAD_706 AAE_707 AAF_708 AAG_709 AAH_710 AAI_711 AAJ_712 AAK_713 AAL_714 AAM_715 AAN_716 AAO_717 AAP_718 AAQ_719 AAR_720 AAS_721 AAT_722 AAU_723 AAV_724 AAW_725 AAX_726 AAY_727 AAZ_728 
    ABA_729 ABB_730 ABC_731 ABD_732 ABE_733 ABF_734 ABG_735 ABH_736 ABI_737 ABJ_738 ABK_739 ABL_740 ABM_741 ABN_742 ABO_743 ABP_744 ABQ_745 ABR_746 ABS_747 ABT_748 ABU_749 ABV_750 ABW_751 ABX_752 ABY_753 ABZ_754 
    ACA_755 ACB_756 ACC_757 ACD_758 ACE_759 ACF_760 ACG_761 ACH_762 ACI_763 ACJ_764 ACK_765 ACL_766 ACM_767 ACN_768 ACO_769 ACP_770 ACQ_771 ACR_772 ACS_773 ACT_774 ACU_775 ACV_776 ACW_777 ACX_778 ACY_779 ACZ_780 
    ADA_781 ADB_782 ADC_783 ADD_784 ADE_785 ADF_786 ADG_787 ADH_788 ADI_789 ADJ_790 ADK_791 ADL_792 ADM_793 ADN_794 ADO_795 ADP_796 ADQ_797 ADR_798 ADS_799 ADT_800 ADU_801 ADV_802 ADW_803 ADX_804 ADY_805 ADZ_806 
    AEA_807 AEB_808 AEC_809 AED_810 AEE_811 AEF_812 AEG_813 AEH_814 AEI_815 AEJ_816 AEK_817 AEL_818 AEM_819 AEN_820 AEO_821 AEP_822 AEQ_823 AER_824 AES_825 AET_826 AEU_827 AEV_828 AEW_829 AEX_830 AEY_831 AEZ_832 
    AFA_833 AFB_834 AFC_835 AFD_836 AFE_837 AFF_838 AFG_839 AFH_840 AFI_841 AFJ_842 AFK_843 AFL_844 AFM_845 AFN_846 AFO_847 AFP_848 AFQ_849 AFR_850 AFS_851 AFT_852 AFU_853 AFV_854 AFW_855 AFX_856 AFY_857 AFZ_858 
    AGA_859 AGB_860 AGC_861 AGD_862 AGE_863 AGF_864 AGG_865 AGH_866 AGI_867 AGJ_868 AGK_869 AGL_870 AGM_871 AGN_872 AGO_873 AGP_874 AGQ_875 AGR_876 AGS_877 AGT_878 AGU_879 AGV_880 AGW_881 AGX_882 AGY_883 AGZ_884 
    AHA_885 AHB_886 AHC_887 AHD_888 AHE_889 AHF_890 AHG_891 AHH_892 AHI_893 AHJ_894 AHK_895 AHL_896 AHM_897 AHN_898 AHO_899 AHP_900 AHQ_901 AHR_902 AHS_903 AHT_904 AHU_905 AHV_906 AHW_907 AHX_908 AHY_909 AHZ_910 
    AIA_911 AIB_912 AIC_913 AID_914 AIE_915 AIF_916 AIG_917 AIH_918 AII_919 AIJ_920 AIK_921 AIL_922 AIM_923 AIN_924 AIO_925 AIP_926 AIQ_927 AIR_928 AIS_929 AIT_930 AIU_931 AIV_932 AIW_933 AIX_934 AIY_935 AIZ_936 
    AJA_937 AJB_938 AJC_939 AJD_940 AJE_941 AJF_942 AJG_943 AJH_944 AJI_945 AJJ_946 AJK_947 AJL_948 AJM_949 AJN_950 AJO_951 AJP_952 AJQ_953 AJR_954 AJS_955 AJT_956 AJU_957 AJV_958 AJW_959 AJX_960 AJY_961 AJZ_962 
    AKA_963 AKB_964 AKC_965 AKD_966 AKE_967 AKF_968 AKG_969 AKH_970 AKI_971 AKJ_972 AKK_973 AKL_974 AKM_975 AKN_976 AKO_977 AKP_978 AKQ_979 AKR_980 AKS_981 AKT_982 AKU_983 AKV_984 AKW_985 AKX_986 AKY_987 AKZ_988 
    ALA_989 ALB_990 ALC_991 ALD_992 ALE_993 ALF_994 ALG_995 ALH_996 ALI_997 ALJ_998 ALK_999 

     

    展开全文
  • 定义广义的二进制文件即指文件,由文件在外部设备的存放形式为二进制而得名。狭义的二进制文件即除文本文件以外的文件。文本文件是一种由很多行字符构成的计算机文件。文本文件存在于计算机系统中,通常在文本文件...

    定义

    广义的二进制文件即指文件,由文件在外部设备的存放形式为二进制而得名。狭义的二进制文件即除文本文件以外的文件。文本文件是一种由很多行字符构成的计算机文件。文本文件存在于计算机系统中,通常在文本文件最后一行放置文件结束标志。文本文件的编码基于字符定长,译码相对要容易一些;二进制文件编码是变长的,灵活利用率要高,而译码要难一些,不同的二进制文件译码方式是不同的。

    从本质上来说他们之间没有什么区别,因为他们在硬盘上都有一种的存放方式--二进制,但是如果要对他们有些区分的话,那可以这样理解。每个字符由一个或多个字节组成,每个字节都是用的-128—127之间的部分数值来表示的,也就是说,-128——127之间还有一些数据没有对应任何字符的任何字节。如果一个文件中的每个字节的内容都是可以表示成字符的数据,我们就可以称这个文件为文本文件,可见,文本文件只是二进制文件中的一种特例,为了与文本文件相区别,人们又把除了文本文件以外的文件称为二进制文件,由于很难严格区分文本文件和二进制文件的概念,所以我们可以简单地认为,如果一个文件专门用于存储文本字符的数据,没有包含字符以外的其他数据,我们就称之为文本文件,除此之外的文件就是二进制文件。

    使用二进制文件的好处

    为什么要使用二进制文件。原因大概有三个:

    第一是二进制文件比较节约空间,这两者储存字符型数据时并没有差别。但是在储存数字,特别是实型数字时,二进制更节省空间,比如储存 Real*4 的数据:3.1415927,文本文件需要 9 个字节,分别储存:3 . 1 4 1 5 9 2 7 这 9 个 ASCII 值,而二进制文件只需要 4 个字节(DB 0F 49 40)

    第二个原因是,内存中参加计算的数据都是用二进制无格式储存起来的,因此,使用二进制储存到文件就更快捷。如果储存为文本文件,则需要一个转换的过程。在数据量很大的时候,两者就会有明显的速度差别了。

    第三,就是一些比较精确的数据,使用二进制储存不会造成有效位的丢失。[1]

    二进制文件的储存方式

    列举一个二进制文件如下:

    00000000h:0F 01 00 00 0F 03 00 00 12 53 21 45 58 62 35 34; .........S!EXb54

    00000010h:41 42 43 44 45 46 47 48 49 47 4B 4C 4D 4E 4F 50; ABCDEFGHIGKLMNOP

    这里列出的是在 UltraEdit(UE) 里看到的东西。其实只有红色部分是文件内容。前面的是 UE 加入的行号。后面的是 UE 尝试解释为字符型的参考。

    这个文件一共有 32 字节长。显示为两列,每列 16 个字节。实际上,这仅仅是 UE 的显示而已。真实的文件并不分行。仅仅知道这个文件的内容,如果我们没有任何说明的话,是不能看出任何有用信息的。

    下面我规定一下说明:我们认为,前 4 个字节是一个 4 字节的整型数据(0F 01 00 00 十六进制:10Fh 十进制:271)。这 4 个字节之后的 4 个字节是另一个 4 字节的整型数据(0F 03 00 00 十六进制:30Fh 十进制:783)。其后的 4 个字节(12 53 21 45 )表示一个 4 字节的实型数据:2.5811919E+3。再其后的 4 个字节(58 62 35 34)表示另一个 4 字节的实行数据:1.6892716E-7。而只后的 16 个字节(41 42 43 44 45 46 47 48 49 47 4B 4C 4D 4E 4F 50)我们认为是 16 个字节的字符串(ABCDEFGHIGKLMNOP)

    实际上,二进制文件只是储存数据,并不写明数据类型,比如上面的第 9 字节到第 16 字节(12 53 21 45 58 62 35 34),我们刚才认为是 2 个 4 字节的实型,其实也可以认为是 8 个字节的字符型( S!EXb54)。而后面的 16 个字节的字符串(ABCDEFGHIGKLMNOP),我们也可以认为是 2 个 8 字节的整型,或者 4 个 4 字节的整型,甚至 2 个 8 字节的实型,4 个 4 字节的实型,等等等等。

    因此,面对一个二进制文件,我们不能准确地知道它的含义,我们需要他的数据储存方式的说明。这个说明告诉我们第几个字节到第几个字节是什么类型的数据,储存的数据是什么含义。否则的话,我们只能猜测,或者无能为力。[1]

    如何使用语句操作二进制文件

    我们将上面的那个二进制文件保存为:TestBin.Bin 来举例。

    读取和写入二进制其实是两个很类似的操作,了解了其中之一,另一个也就不难了。

    二进制文件我们通常使用直接读取方式,Open 语句可以写为:

    引用:

    Open( 12 , File = 'TestBin.Bin' , Access = 'Direct' , Form = 'Unformatted' , RecL = 4 )

    上面的 Access 表示直接读取方式,Form 表示无格式储存。比较重要的是 RecL 。我们读取数据时,是用记录来描述单位的,每一次读入或写入是一个记录。记录的长度在 Open 时就确定下来,以后不能改变。如果需要改变,只能 Close 以后再此 Open。

    记录长度在某些编译器下表示读取的 4 字节长度的倍数,规定为 4 表示记录长度为 16 字节。有些编译器下就直接表示记录的字节数,规定为 4 则表示记录长度为 4 字节。这个问题需要参考编译器手册。在 VF 系列里,这个值是前面一个含义。可以通过设置工程属性的 Fortran,Data,Use Bytes as RECL= Unit for Unformatted Files 来改变,使之成为后一个含义。在命令行模式下,则使用 /assume:byterecl 这个编译选项。

    确定 RecL 大小是我们需要做的事情,一般来说,不适合太大,也不适合太小。还需要结合数据储存方式来考虑。太小的话,我们需要执行读写的次数就多,太大的话,我们就不方便操作小范围的数据。

    有时候我们甚至会分多次来读取数据,每一次的 RecL 都不同。对于上面的 TestBin.Bin 文件来说,它比较简单,我以 16 字节长度和 8 字节长度两种读取方式来演示,你甚至可以一次 32 个字节长度全部读完。[1]

    用例

    C++程序语言学习过程中常见名词,相对于Binary file的是Text file(纯文本文件)。

    C++中二进制文件读写函数:

    fread

    fwrite

    ifstream.read()

    ofstream.write()

    文件读

    文件写

    等等……

    Java中二进制文件读写函数:

    FileInputStream()

    FileOutputStream()

    文件输入流()

    文件输出流()

    等等……

    那么,这个时候我们肯定会问:

    汉字怎样转化为二进制代码?

    各数制之间的转换

    我们用R表示任何数制的基数,讨论各数制之间的转换。

    1.R进制数转换为十进制数

    二进制、八进制和十六进制数转换为等值的十进制数,只要把它们用多项式表示并在十进制下进行计算,所得的结果就是十进制数。

    2.十进制数转换为R进制数

    十进制数转换为等值的二进制、八进制和十六进制数,需要对整数部分和小数部分分别进行转换。其整数部分用连续除以基数R取余数的方法来完成,小数部分用连续乘以基数R取整数的方法来实现。

    基数   基数   基数   基数   基数

    十进制  10000  1000   100   10    1

    二进制   16    8    4    2    1

    八进制  4096   512    64   8    1

    十六进制 65536  4096   256   16    1

    3.二进制数与八进制数、十六进制数的转换

    二进制数与八进制数的转换应以"3位二进制数对应1位八进制数"%的原则进行。同理,因为24=16,则二进制数与十六进制数的转换应以"4位二进制数对应1位十六进制数"的原则进行。

    四、二进制数的运算

    在计算机中,二进制数的运算包括算术运算和逻辑运算。

    1.二进制数的算术运算

    (1)二进制数加法

    加法原则:逢二进一

    (2)二进制数减法

    减法原则:借一当二

    (3)二进制数乘法

    乘法原则:与算术乘法形式相同

    (4)二进制数除法

    除法原则:与算术除法形式相同

    2.二进制数的逻辑运算

    逻辑运算是以二进制数为基础的,逻辑变量只有两个,用来表示逻辑"真"和"假"。

    (1)逻辑加法("或"运算)

    运算符号:"+"或"∨"

    运算规则:0+0=0;0+1=1;1+0=1;1+1=1;

    (2)逻辑乘法("与"运算)

    运算符号:"×"或"∧"

    运算规则:0×0=0;0×1=0;1×0=0;1×1=1;

    (3)逻辑"非"运算

    运算符号:"-"%运算规则:A&-*=0时,A=1

    五、数据类型及数据单位

    1.数据的两种类型

    计算机中的数据可概括分为两大类:数值型数据和字符型数据。所有的非数值型数据都要经过数字化后才能在计算机中存储和处理。

    2.数据单位

    在计算机中通常使用三个数据单位:位、字节和字。位的概念是:最小的存储单位,英文名称是bit,常用小写b或bit表示。用8位二进制数作为表示字符和数字的基本单元,

    英文名称是byte,称为一字节。通常用大"B"表示。

    1B(字节)=8b(位)

    1KB(千字节)=1024B(字节)

    1MB(兆字节)=1024KB(千字节)

    字长:字长也称为字或计算机字,它是计算机能并行处理的二进制数的位数。

    六、字符编码与汉字编码

    1.字符编码

    目前微型机中普遍采用的字符编码是ASCII码。它是用七位二进制数对127个字符进行编码,其中前32个是一些不可打印的控制符号。

    2.汉字编码及字模信息

    汉字有两种编码:国标码与机内码。

    国标码是"中华人民共和国国家标准信息交换汉字编码",代号为"GB2312-80"。在国标码的字符集中,收集了一级汉字3755个,二级汉字3008个,图形符号682个,共7445个。一个汉字对应一个区位码,由四位数字组成,前两位数字为区码(0~94),后两位数字为位码(0~94)。机内码是指汉字在计算机中的编码

    汉字的机内码占两个字节,分别称为机内码的高位与低位。它们与区位码的关系如下:

    机内码高位=区码+A0H

    机内码低位=位码+A0H

    汉字字库是由所有汉字的字模信息构成的。一个汉字字模信息占若干字节,究竟占多少个字节由汉字的字形决定。

    例如,如果用16×16点阵表示一个汉字,则一个汉字占16行,每行有16个点,在存储时用两个字节存放一行上16个点的信息,对应位为"0"表示该点为"白","1"表示该点为"黑"。因此,一个16×16点阵的汉字占32个字节。

    ---------------------------------------------------------------

    描述2进制的数据结构,用字符串直观,但是效率低,用数组效率高,但是不直观。

    但是道理相同。

    性字转换后的结果:

    010000010000 010010010000 010010010100 111011111110 110010010000 010100010000 010011111110 010000010000 010000010000 010000010000 010111111110 000000000000

    144位编码,这也不可能的,

    性字编码alert asc("性")得到-12076,转化为2进制为-10111100101100 不算正负有14位就够了。

    如果非要补到144位也因该是高位补0。

    function c10to2(x)

    '10进制到2进制的转换

    dim sign, result

    result = ""

    '符号

    sign = sgn(x)

    x = abs(x)

    if x = 0 then

    c10to2 = 0

    exit function

    end if

    do until x = "0"

    result = result & (x mod 2)

    x = x \ 2

    loop

    result = strReverse(result)

    if sign = -1 then

    c10to2 = "-" & result

    else

    c10to2 = result

    end if

    end function

    ---------------------------------------------------------------

    另外一个人的写法:

    function c10to2(x)

    mysign=sgn(x)

    x=abs(x)

    DigS=1

    do

    if x<2^DigS

    二进制编码转汉字:

    1. 汉字信息交换码(国标码)

    《信息交换用汉字 编码字符集·基本集》是我国于1980年制定的国家标准 GB2312-80,代号为国标码,是国家规定的用于汉字信息处理使用的代码依据。

    GB2312-80中规定了信息交换用的6763个汉字和682个非汉字图形符号(包括几种外文字母、数字和符号)的代码。

    6763个汉字又按其 使用频度、组词能力以及用途大小分成一级常用汉字3755个和二级常用汉字3008个。

    一级汉字按拼音字母顺序排列;若遇同音字,则 按起笔的笔形顺序排列;若起笔相同,则按第二笔的笔形顺序排列,依次类推。所谓笔形顺序,就是横、竖、撇、点和折的顺序。二级汉字按 部首顺序排列。

    在此标准中,每个汉字(图形符号)采用双字节表示。每个字节只用低7位,最高位恒为1。由于低7位中有34种状态是用 于控制字符,因此,只有94(128-34=94)种状态可用于汉字编码。这样,双字节的低7位只能表示94×94=8836种状态。

    编码范围

    十进制数码

    基本 ASCII 码

    00000000~01111111

    0~127

    控制字符

    00000000~00100000、01111111

    0~32、127

    可用汉字段

    00100001~01111110

    33~126 (1~94)

    扩充 ASCII 码

    10000000~11111111

    128~255

    控制字符

    10000000~10100000、11111111

    128~160、255

    GB2312-80

    10100001~11111110

    161~254 (1~94)

    此标准的汉字编码表有94行、94列,其行号称为区号,列号称为位号。双字节中,用 高字节表示区号,低字节表示位号。非汉字图形符号置于第1~11区,一级汉字3755个且于第16~55区,二级汉字3008个置于第56~87区。

    每个图形字符的汉字交换码,均用两个字节的低7位二进制码表示。汉字国标码通常用十六进制数表示。

    例如:“中”字的区号为 54,位号为48,计算它的二进制数和十六进制数国标码。

    解:先将区、位号分别加上 32 :

    54+32=86

    48+32=80

    分别转换为二进制数:

    (86)10=01010110

    (80)10=0 1010000

    得到二进制数国标码为:

    01010110 01010000。

    最后通过 8 4 2 1 ── 二进制取位法转换成十六 进制汉字国标码为:5650。

    又如“国”字的区号为25,位号为90,用以上相同的方法得到它的国标码为:

    二进制:00111001 01111010

    十六进制:397A

    ----------------------------------------------------------------

    基于以上原则,则

    11000100,11100011,10111010,11000011

    >(1100 0100 1110 0011)2,(1011 1010 1100 0011)2

    >(C4E3)16,(BAC3)16

    >查表可知:C4E3>>‘你’,BAC3>>‘好’

    展开全文
  • VFP中常用3种进制的转换

    千次阅读 2008-11-01 21:13:00
    * 10进制和2进制之间转换?_2to10(_10to2(-3222))?_2to10(_10to2(3222))* 10进制转换16进制?transform(3222 ,[@0])* 16进制转换10进制?0x0C96function _10to2(tn as integer) as string local st ,i st...
  • create or replace function SHI_TO2(f1 in number) return varchar2isvf11 varchar(30); vf12 number:=f1;begin Loop exit when vf12 = 0 ; if mod(vf12,2)=0 then vf11:=0||
  • [转载:]Fortran 二进制文件读写 一些朋友总是咨询关于二进制文件的读写和转化。这里就我自己的理解说一说。 一).一般问题 二进制文件与我们通常使用的文本文件储存方式有根本的不同。这样的不同很难用...
  • 的数据,我们就可以称这个文件为文本文件,可见,文本文件只是二进制文件中的一种特例,为了与文本文件相区别,人们又把除了文本文件以外的文件称为二进制文件,由于很难严格区分文本文件和二进制文件的概念,所以...
  • 什么是二进制文件

    千次阅读 2019-12-28 22:10:42
    自:...计算机文件基本上分为二种:二进制文件和 ASCII(也称纯文本文件),图形文件及文字处理程序等计算机程序都属于二进制文件。这些文件含有特殊的格式及计算机代码...
  • 文本文件和二进制文件学习

    千次阅读 2016-07-03 20:23:46
     二进制文件与我们通常使用的文本文件储存方式有根本的不同。这样的不同很难用言语表达,自己亲自看一看,理解起来会容易得多。因此,我推荐学习二进制文件读写的朋友安装一款十六进制编辑器。这样的编辑器有很多,...
  • 本文章由公号【开发小鸽】发布!...源码包就是作者直接将源程序发布在网上,我们直接下载源文件,自己编译成二进制程序使用。 (2) 优点        开源,可修改源代码;   &nb
  • 关于二进制文件与文本文件

    千次阅读 2017-03-16 21:59:03
    所谓的文本文件其实就是数据格式为字符型,用... 当数据类型为整型写入文件,用记事本打开就是乱码,因为记事本只能按照文本型(char)解析,这时要用先读出二进制,再十进制。  以下给出一段验证的C语言代码:
  • 一般问题 二进制文件与我们通常使用的文本文件储存方式有根本的不同。这样的不同很难用言语表达,自己亲自看一看,理解起来会容易得多。因此,我推荐学习二进制文件读写的朋友安装一款十六进制编辑器。这样的编辑器...
  •  二进制文件与我们通常使用的文本文件储存方式有根本的不同。这样的不同很难用言语表达,自己亲自看一看,理解起来会容易得多。因此,我推荐学习二进制文件读写的朋友安装一款十六进制编辑器。这样的编辑器有很多,...
  • shell 进制转换

    千次阅读 2013-12-28 13:12:47
    # cat t.sh n=17 m=1111 #十六进制转十进制 ...#二进制转十进制 echo $((2#$m))  #十进制转十六进制 printf “%x” “$n″  #十进制转八进制 printf “%o” “$n″  --------------- $ cat 82599/
  • 1、第第2章章 数字化信息编码与数据表示数字化信息编码与数据表示 2.1 数字化信息编码的概念数字化信息编码的概念 2.2 进位计数制进位计数制 2.3 不同进制之间的转换不同进制之间的转换 2.4 计算机中数据的表示方法...
  • 二进制文件读写(写给新手)Fortran

    千次阅读 2011-06-09 00:29:00
    2008/05/17 11:43 一些朋友总是咨询关于二进制文件的读写和转化。这里就我自己的理解说一说。一).一般问题 二进制文件与我们通常使用的文本文件储存方式有根本的不同。这样的不同很难用言语表达,自己亲自看一看...
  • 一般问题 二进制文件与我们通常使用的文本文件储存方式有根本的不同。这样的不同很难用言语表达,自己亲自看一看,理解起来会容易得多。因此,我推荐学习二进制文件读写的朋友安装一款十六进制编辑器。这样的编辑器...
  • 、制作CA证书 三、配置etcd 四、在master主节点上配置Kubernetes API服务 五、在master主节点上部署Controller Manager、Kubernetes Scheduler 六、在master主节点上部署kubectl命令行工具 七、在...
  • Visual foxpro 命令大全和函数大全

    万次阅读 多人点赞 2010-03-17 15:25:00
    CALL 运行内存中的二进制文件 CANCEL 终止程序执行,返回圆点提示符 CASE 在多重选择语句中,指定一个条件 CHANGE 对数据库中的指定字段和记录进行编辑 CLEAR 清洁屏幕,将光标移动到屏幕...
  • 编写一个进制转换程序,程序演示如下(提示,十进制转换二进制可以用bin()这个BIF) q = True while q : temp = input( '请输入一个整数(输入Q结束程序):' ) if temp != 'Q' : if temp.isdigit():...
  • 1、电子技术综合实训I设计报告设计题目:时钟电路的设计所属系部:电气与电子工程系专 业:学 号:姓 名:指导老师:完成日期: 2013年 1月10日目录一、目的与要求 3、设计框图 3三、方案选择与论证 41、时钟脉冲...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 690
精华内容 276
关键字:

vf十进制数转二进制数

友情链接: ghmm-0.9-rc1.tar.gz