-
Notifications
You must be signed in to change notification settings - Fork 24
/
Copy pathcrc32.xml
146 lines (139 loc) · 4.81 KB
/
crc32.xml
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
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
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
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
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e095023e408c8cb6378ae16bb6870343a3946919 Maintainer: nilgun Status: ready -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.crc32">
<refnamediv>
<refname>crc32</refname>
<refpurpose>Bir dizgenin crc32 çok terimlisini hesaplar</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>crc32</methodname>
<methodparam><type>string</type><parameter>dizge</parameter></methodparam>
</methodsynopsis>
<para>
<parameter>dizge</parameter> dizgesinin çevrimsel artıklık sağlaması
çok terimlisinin sonucunu hesaplar. Bu genellikle aktarılan bir verinin
bütünlük doğrulamasını yapmak için kullanılır.
</para>
<para>
PHP'nin tamsayı türü işaretli olduğundan ve çoğu crc32 sağlaması 32 bitlik
platformlarda negatif tamsayılar üretir. işaretsiz crc32 sağlamalarının
dizgesel gösterimlerini elde etmek için <function>sprintf</function> ve
<function>printf</function> işlevlerinde "%u" belirtimini kullanın
</para>
<warning>
<simpara>
PHP'nin tamsayı türü işaretli olduğundan ve çoğu crc32 sağlaması 32 bitlik
kurulumlarda negatif tamsayılar üretir. 64 bitlik kurulumlarda ise tüm
<function>crc32</function> sonuçları positif tamsayılardır.
</simpara>
<simpara>
Ondalık biçemdeki işaretsiz <function>crc32</function> sağlamalarının
dizgesel gösterimlerini elde etmek için <function>sprintf</function> ve
<function>printf</function> işlevlerinde "%u" belirtimi kullanılır.
</simpara>
<simpara>
Sağlama toplamının onaltılık gösterimi için, <function>sprintf</function>
veya <function>printf</function> işlevinin "%x" biçimlendiricisini veya
<function>dechex</function> dönüştürme işlevlerini kullanabilirsiniz;
bunların her ikisi de <function>crc32</function> sonucunu işaretsiz bir
tam sayıya dönüştürmeye özen gösterir.
</simpara>
<simpara>
64 bit kurulumlara sahip olunması durumunda, daha büyük sonuç değerleri
için negatif tamsayılar döndürülmesi de düşünüldü, ancak bu onaltılık
değer dönüştürmeyi bozacaktı, çünkü bu takdirde negatif değerler fazladan
0xFFFFFFFF ######## başlangıcı elde edecekti. Onaltılık gösterim en yaygın
kullanım durumu gibi göründüğünden, 32 bitten 64 bite geçiş, doğrudan
ondalık karşılaştırmaların yaklaşık %50'sini bozsa bile negatif tamsayılar
döndürmemeye karar verdik.
</simpara>
<simpara>
Geçmişe bakıldığında, işlevin bir tamsayı döndürmesi belki en iyi fikir
değildi ve hemen onaltılık bir dize gösterimi döndürmek
(<function>md5</function>'in yaptığı gibi), başlangıç için daha iyi bir
plan olabilirdi.
</simpara>
<simpara>
Daha taşınabilir bir çözüm için <function>hash</function> işlevini de
düşünebilirsiniz. <code>hash("crc32b", $str)</code> kodu ile,
<code>str_pad(dechex(crc32($str)), 8, '0', STR_PAD_LEFT)</code> kodu aynı
dizeyi döndürür.
</simpara>
</warning>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>dizge</parameter></term>
<listitem>
<para>
Veri.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<parameter>dizge</parameter> dizgesinin crc32 sağlamasını bir tamsayı
olarak döndürür.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>- Bir crc32 sağlamasının gösterilmesi</title>
<para>
Bu örnekte sağlama toplamını basmak için <function>printf</function>
işlevinin kullanımı gösterilmiştir.
</para>
<programlisting role="php">
<![CDATA[
<?php
$checksum = crc32("The quick brown fox jumped over the lazy dog.");
printf("%u\n", $checksum);
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>hash</function></member>
<member><function>md5</function></member>
<member><function>sha1</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->